<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span id="local-6989586621680795448"><span id="local-6989586621680795449"></span></span><span class="hs-comment">{-
(c) The University of Glasgow 2006
(c) The AQUA Project, Glasgow University, 1994-1998


UniqFM: Specialised finite maps, for things with @Uniques@.

Basically, the things need to be in class @Uniquable@, and we use the
@getUnique@ method to grab their @Uniques@.

(A similar thing to @UniqSet@, as opposed to @Set@.)

The interface is based on @FiniteMap@s, but the implementation uses
@Data.IntMap@, which is both maintained and faster than the past
implementation (see commit log).

The @UniqFM@ interface maps directly to Data.IntMap, only
``Data.IntMap.union'' is left-biased and ``plusUFM'' right-biased
and ``addToUFM\_C'' and ``Data.IntMap.insertWith'' differ in the order
of arguments of combining function.
-}</span><span>
</span><span id="line-22"></span><span>
</span><span id="line-23"></span><span class="hs-pragma">{-# LANGUAGE DeriveDataTypeable #-}</span><span>
</span><span id="line-24"></span><span class="hs-pragma">{-# LANGUAGE GeneralizedNewtypeDeriving #-}</span><span>
</span><span id="line-25"></span><span class="hs-pragma">{-# LANGUAGE ScopedTypeVariables #-}</span><span>
</span><span id="line-26"></span><span class="hs-pragma">{-# OPTIONS_GHC -Wall #-}</span><span>
</span><span id="line-27"></span><span>
</span><span id="line-28"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">GHC.Types.Unique.FM</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-29"></span><span>        </span><span class="annot"><span class="hs-comment">-- * Unique-keyed mappings</span></span><span>
</span><span id="line-30"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier">UniqFM</span></a></span><span class="hs-special">,</span><span>           </span><span class="hs-comment">-- abstract type</span><span>
</span><span id="line-31"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#NonDetUniqFM"><span class="hs-identifier">NonDetUniqFM</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="hs-comment">-- wrapper for opting into nondeterminism</span><span>
</span><span id="line-32"></span><span>
</span><span id="line-33"></span><span>        </span><span class="annot"><span class="hs-comment">-- ** Manipulating those mappings</span></span><span>
</span><span id="line-34"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#emptyUFM"><span class="hs-identifier">emptyUFM</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-35"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#unitUFM"><span class="hs-identifier">unitUFM</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-36"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#unitDirectlyUFM"><span class="hs-identifier">unitDirectlyUFM</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-37"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#listToUFM"><span class="hs-identifier">listToUFM</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-38"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#listToUFM_Directly"><span class="hs-identifier">listToUFM_Directly</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-39"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#listToUFM_C"><span class="hs-identifier">listToUFM_C</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-40"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#listToIdentityUFM"><span class="hs-identifier">listToIdentityUFM</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-41"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#addToUFM"><span class="hs-identifier">addToUFM</span></a></span><span class="hs-special">,</span><span class="annot"><a href="GHC.Types.Unique.FM.html#addToUFM_C"><span class="hs-identifier">addToUFM_C</span></a></span><span class="hs-special">,</span><span class="annot"><a href="GHC.Types.Unique.FM.html#addToUFM_Acc"><span class="hs-identifier">addToUFM_Acc</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-42"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#addListToUFM"><span class="hs-identifier">addListToUFM</span></a></span><span class="hs-special">,</span><span class="annot"><a href="GHC.Types.Unique.FM.html#addListToUFM_C"><span class="hs-identifier">addListToUFM_C</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-43"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#addToUFM_Directly"><span class="hs-identifier">addToUFM_Directly</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-44"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#addListToUFM_Directly"><span class="hs-identifier">addListToUFM_Directly</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-45"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#adjustUFM"><span class="hs-identifier">adjustUFM</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#alterUFM"><span class="hs-identifier">alterUFM</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-46"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#adjustUFM_Directly"><span class="hs-identifier">adjustUFM_Directly</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-47"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#delFromUFM"><span class="hs-identifier">delFromUFM</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-48"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#delFromUFM_Directly"><span class="hs-identifier">delFromUFM_Directly</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-49"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#delListFromUFM"><span class="hs-identifier">delListFromUFM</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-50"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#delListFromUFM_Directly"><span class="hs-identifier">delListFromUFM_Directly</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-51"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#plusUFM"><span class="hs-identifier">plusUFM</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-52"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#plusUFM_C"><span class="hs-identifier">plusUFM_C</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-53"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#plusUFM_CD"><span class="hs-identifier">plusUFM_CD</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-54"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#plusUFM_CD2"><span class="hs-identifier">plusUFM_CD2</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-55"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#mergeUFM"><span class="hs-identifier">mergeUFM</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-56"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#plusMaybeUFM_C"><span class="hs-identifier">plusMaybeUFM_C</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-57"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#plusUFMList"><span class="hs-identifier">plusUFMList</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-58"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#minusUFM"><span class="hs-identifier">minusUFM</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-59"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#intersectUFM"><span class="hs-identifier">intersectUFM</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-60"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#intersectUFM_C"><span class="hs-identifier">intersectUFM_C</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-61"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#disjointUFM"><span class="hs-identifier">disjointUFM</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-62"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#equalKeysUFM"><span class="hs-identifier">equalKeysUFM</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-63"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#nonDetStrictFoldUFM"><span class="hs-identifier">nonDetStrictFoldUFM</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#foldUFM"><span class="hs-identifier">foldUFM</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#nonDetStrictFoldUFM_Directly"><span class="hs-identifier">nonDetStrictFoldUFM_Directly</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-64"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#anyUFM"><span class="hs-identifier">anyUFM</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#allUFM"><span class="hs-identifier">allUFM</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#seqEltsUFM"><span class="hs-identifier">seqEltsUFM</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-65"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#mapUFM"><span class="hs-identifier">mapUFM</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#mapUFM_Directly"><span class="hs-identifier">mapUFM_Directly</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-66"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#mapMaybeUFM"><span class="hs-identifier">mapMaybeUFM</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-67"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#elemUFM"><span class="hs-identifier">elemUFM</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#elemUFM_Directly"><span class="hs-identifier">elemUFM_Directly</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-68"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#filterUFM"><span class="hs-identifier">filterUFM</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#filterUFM_Directly"><span class="hs-identifier">filterUFM_Directly</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#partitionUFM"><span class="hs-identifier">partitionUFM</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-69"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#sizeUFM"><span class="hs-identifier">sizeUFM</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-70"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#isNullUFM"><span class="hs-identifier">isNullUFM</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-71"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#lookupUFM"><span class="hs-identifier">lookupUFM</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#lookupUFM_Directly"><span class="hs-identifier">lookupUFM_Directly</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-72"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#lookupWithDefaultUFM"><span class="hs-identifier">lookupWithDefaultUFM</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#lookupWithDefaultUFM_Directly"><span class="hs-identifier">lookupWithDefaultUFM_Directly</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-73"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#nonDetEltsUFM"><span class="hs-identifier">nonDetEltsUFM</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#eltsUFM"><span class="hs-identifier">eltsUFM</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#nonDetKeysUFM"><span class="hs-identifier">nonDetKeysUFM</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-74"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#ufmToSet_Directly"><span class="hs-identifier">ufmToSet_Directly</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-75"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#nonDetUFMToList"><span class="hs-identifier">nonDetUFMToList</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#ufmToIntMap"><span class="hs-identifier">ufmToIntMap</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#unsafeIntMapToUFM"><span class="hs-identifier">unsafeIntMapToUFM</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-76"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#unsafeCastUFMKey"><span class="hs-identifier">unsafeCastUFMKey</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-77"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.FM.html#pprUniqFM"><span class="hs-identifier">pprUniqFM</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#pprUFM"><span class="hs-identifier">pprUFM</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#pprUFMWithKeys"><span class="hs-identifier">pprUFMWithKeys</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#pluralUFM"><span class="hs-identifier">pluralUFM</span></a></span><span>
</span><span id="line-78"></span><span>    </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-79"></span><span>
</span><span id="line-80"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Prelude.html"><span class="hs-identifier">GHC.Prelude</span></a></span><span>
</span><span id="line-81"></span><span>
</span><span id="line-82"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html"><span class="hs-identifier">GHC.Types.Unique</span></a></span><span> </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier">Uniquable</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier">Unique</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#getKey"><span class="hs-identifier">getKey</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-83"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html"><span class="hs-identifier">GHC.Utils.Outputable</span></a></span><span>
</span><span id="line-84"></span><span>
</span><span id="line-85"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../containers/src/Data.IntMap.html#"><span class="hs-identifier">Data.IntMap</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">M</span></span><span>
</span><span id="line-86"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../containers/src/Data.IntSet.html#"><span class="hs-identifier">Data.IntSet</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">S</span></span><span>
</span><span id="line-87"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Data.html#"><span class="hs-identifier">Data.Data</span></a></span><span>
</span><span id="line-88"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../base/src/Data.Semigroup.html#"><span class="hs-identifier">Data.Semigroup</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">Semi</span></span><span>
</span><span id="line-89"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Functor.Classes.html#"><span class="hs-identifier">Data.Functor.Classes</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Functor.Classes.html#Eq1"><span class="hs-identifier">Eq1</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-90"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Coerce.html#"><span class="hs-identifier">Data.Coerce</span></a></span><span>
</span><span id="line-91"></span><span>
</span><span id="line-92"></span><span class="hs-comment">-- | A finite map from @uniques@ of one type to</span><span>
</span><span id="line-93"></span><span class="hs-comment">-- elements in another type.</span><span>
</span><span id="line-94"></span><span class="hs-comment">--</span><span>
</span><span id="line-95"></span><span class="hs-comment">-- The key is just here to keep us honest. It's always safe</span><span>
</span><span id="line-96"></span><span class="hs-comment">-- to use a single type as key.</span><span>
</span><span id="line-97"></span><span class="hs-comment">-- If two types don't overlap in their uniques it's also safe</span><span>
</span><span id="line-98"></span><span class="hs-comment">-- to index the same map at multiple key types. But this is</span><span>
</span><span id="line-99"></span><span class="hs-comment">-- very much discouraged.</span><span>
</span><span id="line-100"></span><span class="hs-keyword">newtype</span><span> </span><span id="UniqFM"><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-var">UniqFM</span></a></span></span><span> </span><span id="local-6989586621680795952"><span class="annot"><a href="#local-6989586621680795952"><span class="hs-identifier hs-type">key</span></a></span></span><span> </span><span id="local-6989586621680795951"><span class="annot"><a href="#local-6989586621680795951"><span class="hs-identifier hs-type">ele</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="UFM"><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../containers/src/Data.IntMap.Internal.html#IntMap"><span class="hs-identifier hs-type">M.IntMap</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795951"><span class="hs-identifier hs-type">ele</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-101"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680795342"><span id="local-6989586621680795344"><span id="local-6989586621680795346"><span id="local-6989586621680795348"><span id="local-6989586621680795350"><span id="local-6989586621680795352"><span id="local-6989586621680795354"><span id="local-6989586621680795356"><span id="local-6989586621680795363"><span id="local-6989586621680795365"><span id="local-6989586621680795367"><span id="local-6989586621680795369"><span id="local-6989586621680795372"><span id="local-6989586621680795376"><span class="annot"><span class="annottext">Typeable (UniqFM key ele)
Typeable (UniqFM key ele)
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; UniqFM key ele -&gt; c (UniqFM key ele))
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c (UniqFM key ele))
-&gt; (UniqFM key ele -&gt; Constr)
-&gt; (UniqFM key ele -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c (UniqFM key ele)))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e))
    -&gt; Maybe (c (UniqFM key ele)))
-&gt; ((forall b. Data b =&gt; b -&gt; b)
    -&gt; UniqFM key ele -&gt; UniqFM key ele)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; UniqFM key ele -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; UniqFM key ele -&gt; r)
-&gt; (forall u.
    (forall d. Data d =&gt; d -&gt; u) -&gt; UniqFM key ele -&gt; [u])
-&gt; (forall u.
    Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; UniqFM key ele -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d)
    -&gt; UniqFM key ele -&gt; m (UniqFM key ele))
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d)
    -&gt; UniqFM key ele -&gt; m (UniqFM key ele))
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d)
    -&gt; UniqFM key ele -&gt; m (UniqFM key ele))
-&gt; Data (UniqFM key ele)
UniqFM key ele -&gt; DataType
UniqFM key ele -&gt; Constr
(forall b. Data b =&gt; b -&gt; b) -&gt; UniqFM key ele -&gt; UniqFM key ele
forall a.
Typeable a
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; a -&gt; c a)
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c a)
-&gt; (a -&gt; Constr)
-&gt; (a -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c a))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c a))
-&gt; ((forall b. Data b =&gt; b -&gt; b) -&gt; a -&gt; a)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; [u])
-&gt; (forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; Data a
forall u.
Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; UniqFM key ele -&gt; u
forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; UniqFM key ele -&gt; [u]
forall {key} {ele}.
(Data key, Data ele) =&gt;
Typeable (UniqFM key ele)
forall key ele. (Data key, Data ele) =&gt; UniqFM key ele -&gt; DataType
forall key ele. (Data key, Data ele) =&gt; UniqFM key ele -&gt; Constr
forall key ele.
(Data key, Data ele) =&gt;
(forall b. Data b =&gt; b -&gt; b) -&gt; UniqFM key ele -&gt; UniqFM key ele
forall key ele u.
(Data key, Data ele) =&gt;
Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; UniqFM key ele -&gt; u
forall key ele u.
(Data key, Data ele) =&gt;
(forall d. Data d =&gt; d -&gt; u) -&gt; UniqFM key ele -&gt; [u]
forall key ele r r'.
(Data key, Data ele) =&gt;
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; UniqFM key ele -&gt; r
forall key ele r r'.
(Data key, Data ele) =&gt;
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; UniqFM key ele -&gt; r
forall key ele (m :: * -&gt; *).
(Data key, Data ele, Monad m) =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; UniqFM key ele -&gt; m (UniqFM key ele)
forall key ele (m :: * -&gt; *).
(Data key, Data ele, MonadPlus m) =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; UniqFM key ele -&gt; m (UniqFM key ele)
forall key ele (c :: * -&gt; *).
(Data key, Data ele) =&gt;
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c (UniqFM key ele)
forall key ele (c :: * -&gt; *).
(Data key, Data ele) =&gt;
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; UniqFM key ele -&gt; c (UniqFM key ele)
forall key ele (t :: * -&gt; *) (c :: * -&gt; *).
(Data key, Data ele, Typeable t) =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c (UniqFM key ele))
forall key ele (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
(Data key, Data ele, Typeable t) =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c (UniqFM key ele))
forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; UniqFM key ele -&gt; r
forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; UniqFM key ele -&gt; r
forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; UniqFM key ele -&gt; m (UniqFM key ele)
forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; UniqFM key ele -&gt; m (UniqFM key ele)
forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c (UniqFM key ele)
forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; UniqFM key ele -&gt; c (UniqFM key ele)
forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c (UniqFM key ele))
forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c (UniqFM key ele))
gmapMo :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; UniqFM key ele -&gt; m (UniqFM key ele)
$cgmapMo :: forall key ele (m :: * -&gt; *).
(Data key, Data ele, MonadPlus m) =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; UniqFM key ele -&gt; m (UniqFM key ele)
gmapMp :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; UniqFM key ele -&gt; m (UniqFM key ele)
$cgmapMp :: forall key ele (m :: * -&gt; *).
(Data key, Data ele, MonadPlus m) =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; UniqFM key ele -&gt; m (UniqFM key ele)
gmapM :: forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; UniqFM key ele -&gt; m (UniqFM key ele)
$cgmapM :: forall key ele (m :: * -&gt; *).
(Data key, Data ele, Monad m) =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; UniqFM key ele -&gt; m (UniqFM key ele)
gmapQi :: forall u.
Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; UniqFM key ele -&gt; u
$cgmapQi :: forall key ele u.
(Data key, Data ele) =&gt;
Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; UniqFM key ele -&gt; u
gmapQ :: forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; UniqFM key ele -&gt; [u]
$cgmapQ :: forall key ele u.
(Data key, Data ele) =&gt;
(forall d. Data d =&gt; d -&gt; u) -&gt; UniqFM key ele -&gt; [u]
gmapQr :: forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; UniqFM key ele -&gt; r
$cgmapQr :: forall key ele r r'.
(Data key, Data ele) =&gt;
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; UniqFM key ele -&gt; r
gmapQl :: forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; UniqFM key ele -&gt; r
$cgmapQl :: forall key ele r r'.
(Data key, Data ele) =&gt;
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; UniqFM key ele -&gt; r
gmapT :: (forall b. Data b =&gt; b -&gt; b) -&gt; UniqFM key ele -&gt; UniqFM key ele
$cgmapT :: forall key ele.
(Data key, Data ele) =&gt;
(forall b. Data b =&gt; b -&gt; b) -&gt; UniqFM key ele -&gt; UniqFM key ele
dataCast2 :: forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c (UniqFM key ele))
$cdataCast2 :: forall key ele (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
(Data key, Data ele, Typeable t) =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c (UniqFM key ele))
dataCast1 :: forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c (UniqFM key ele))
$cdataCast1 :: forall key ele (t :: * -&gt; *) (c :: * -&gt; *).
(Data key, Data ele, Typeable t) =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c (UniqFM key ele))
dataTypeOf :: UniqFM key ele -&gt; DataType
$cdataTypeOf :: forall key ele. (Data key, Data ele) =&gt; UniqFM key ele -&gt; DataType
toConstr :: UniqFM key ele -&gt; Constr
$ctoConstr :: forall key ele. (Data key, Data ele) =&gt; UniqFM key ele -&gt; Constr
gunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c (UniqFM key ele)
$cgunfold :: forall key ele (c :: * -&gt; *).
(Data key, Data ele) =&gt;
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c (UniqFM key ele)
gfoldl :: forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; UniqFM key ele -&gt; c (UniqFM key ele)
$cgfoldl :: forall key ele (c :: * -&gt; *).
(Data key, Data ele) =&gt;
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; UniqFM key ele -&gt; c (UniqFM key ele)
</span><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Data</span></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680795332"><span id="local-6989586621680795337"><span class="annot"><span class="annottext">UniqFM key ele -&gt; UniqFM key ele -&gt; Bool
(UniqFM key ele -&gt; UniqFM key ele -&gt; Bool)
-&gt; (UniqFM key ele -&gt; UniqFM key ele -&gt; Bool)
-&gt; Eq (UniqFM key ele)
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
forall key ele. Eq ele =&gt; UniqFM key ele -&gt; UniqFM key ele -&gt; Bool
/= :: UniqFM key ele -&gt; UniqFM key ele -&gt; Bool
$c/= :: forall key ele. Eq ele =&gt; UniqFM key ele -&gt; UniqFM key ele -&gt; Bool
== :: UniqFM key ele -&gt; UniqFM key ele -&gt; Bool
$c== :: forall key ele. Eq ele =&gt; UniqFM key ele -&gt; UniqFM key ele -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680795321"><span id="local-6989586621680795326"><span class="annot"><span class="annottext">(forall a b. (a -&gt; b) -&gt; UniqFM key a -&gt; UniqFM key b)
-&gt; (forall a b. a -&gt; UniqFM key b -&gt; UniqFM key a)
-&gt; Functor (UniqFM key)
forall a b. a -&gt; UniqFM key b -&gt; UniqFM key a
forall a b. (a -&gt; b) -&gt; UniqFM key a -&gt; UniqFM key b
forall key a b. a -&gt; UniqFM key b -&gt; UniqFM key a
forall key a b. (a -&gt; b) -&gt; UniqFM key a -&gt; UniqFM key b
forall (f :: * -&gt; *).
(forall a b. (a -&gt; b) -&gt; f a -&gt; f b)
-&gt; (forall a b. a -&gt; f b -&gt; f a) -&gt; Functor f
&lt;$ :: forall a b. a -&gt; UniqFM key b -&gt; UniqFM key a
$c&lt;$ :: forall key a b. a -&gt; UniqFM key b -&gt; UniqFM key a
fmap :: forall a b. (a -&gt; b) -&gt; UniqFM key a -&gt; UniqFM key b
$cfmap :: forall key a b. (a -&gt; b) -&gt; UniqFM key a -&gt; UniqFM key b
</span><a href="../../base/src/GHC.Base.html#Functor"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Functor</span></a></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-102"></span><span>  </span><span class="hs-comment">-- Nondeterministic Foldable and Traversable instances are accessible through</span><span>
</span><span id="line-103"></span><span>  </span><span class="hs-comment">-- use of the 'NonDetUniqFM' wrapper.</span><span>
</span><span id="line-104"></span><span>  </span><span class="hs-comment">-- See Note [Deterministic UniqFM] in GHC.Types.Unique.DFM to learn about determinism.</span><span>
</span><span id="line-105"></span><span>
</span><span id="line-106"></span><span id="local-6989586621680795935"><span id="local-6989586621680795936"><span class="annot"><a href="GHC.Types.Unique.FM.html#emptyUFM"><span class="hs-identifier hs-type">emptyUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795936"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795935"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-107"></span><span id="emptyUFM"><span class="annot"><span class="annottext">emptyUFM :: forall key elt. UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#emptyUFM"><span class="hs-identifier hs-var hs-var">emptyUFM</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; UniqFM key elt
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
forall a. IntMap a
</span><a href="../../containers/src/Data.IntMap.Internal.html#empty"><span class="hs-identifier hs-var">M.empty</span></a></span><span>
</span><span id="line-108"></span><span>
</span><span id="line-109"></span><span id="local-6989586621680795930"><span id="local-6989586621680795931"><span class="annot"><a href="GHC.Types.Unique.FM.html#isNullUFM"><span class="hs-identifier hs-type">isNullUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795931"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795930"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span></span></span><span>
</span><span id="line-110"></span><span id="isNullUFM"><span class="annot"><span class="annottext">isNullUFM :: forall key elt. UniqFM key elt -&gt; Bool
</span><a href="GHC.Types.Unique.FM.html#isNullUFM"><span class="hs-identifier hs-var hs-var">isNullUFM</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795315"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795315"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; Bool
forall a. IntMap a -&gt; Bool
</span><a href="../../containers/src/Data.IntMap.Internal.html#null"><span class="hs-identifier hs-var">M.null</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795315"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-111"></span><span>
</span><span id="line-112"></span><span id="local-6989586621680795924"><span id="local-6989586621680795926"><span class="annot"><a href="GHC.Types.Unique.FM.html#unitUFM"><span class="hs-identifier hs-type">unitUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795926"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795926"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795924"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795926"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795924"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-113"></span><span id="unitUFM"><span class="annot"><span class="annottext">unitUFM :: forall key elt. Uniquable key =&gt; key -&gt; elt -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#unitUFM"><span class="hs-identifier hs-var hs-var">unitUFM</span></a></span></span><span> </span><span id="local-6989586621680795311"><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795311"><span class="hs-identifier hs-var">k</span></a></span></span><span> </span><span id="local-6989586621680795310"><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795310"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; UniqFM key elt
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; elt -&gt; IntMap elt
forall a. Int -&gt; a -&gt; IntMap a
</span><a href="../../containers/src/Data.IntMap.Internal.html#singleton"><span class="hs-identifier hs-var">M.singleton</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unique -&gt; Int
</span><a href="GHC.Types.Unique.html#getKey"><span class="hs-identifier hs-var">getKey</span></a></span><span> </span><span class="annot"><span class="annottext">(Unique -&gt; Int) -&gt; Unique -&gt; Int
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">key -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795311"><span class="hs-identifier hs-var">k</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795310"><span class="hs-identifier hs-var">v</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-114"></span><span>
</span><span id="line-115"></span><span class="hs-comment">-- when you've got the Unique already</span><span>
</span><span id="line-116"></span><span id="local-6989586621680795914"><span id="local-6989586621680795915"><span class="annot"><a href="GHC.Types.Unique.FM.html#unitDirectlyUFM"><span class="hs-identifier hs-type">unitDirectlyUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795915"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795914"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795915"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-117"></span><span id="unitDirectlyUFM"><span class="annot"><span class="annottext">unitDirectlyUFM :: forall elt key. Unique -&gt; elt -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#unitDirectlyUFM"><span class="hs-identifier hs-var hs-var">unitDirectlyUFM</span></a></span></span><span> </span><span id="local-6989586621680795307"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621680795307"><span class="hs-identifier hs-var">u</span></a></span></span><span> </span><span id="local-6989586621680795306"><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795306"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; UniqFM key elt
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; elt -&gt; IntMap elt
forall a. Int -&gt; a -&gt; IntMap a
</span><a href="../../containers/src/Data.IntMap.Internal.html#singleton"><span class="hs-identifier hs-var">M.singleton</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unique -&gt; Int
</span><a href="GHC.Types.Unique.html#getKey"><span class="hs-identifier hs-var">getKey</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621680795307"><span class="hs-identifier hs-var">u</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795306"><span class="hs-identifier hs-var">v</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-118"></span><span>
</span><span id="line-119"></span><span id="local-6989586621680795910"><span id="local-6989586621680795911"><span class="annot"><a href="GHC.Types.Unique.FM.html#listToUFM"><span class="hs-identifier hs-type">listToUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795911"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795911"><span class="hs-identifier hs-type">key</span></a></span><span class="hs-special">,</span><span class="annot"><a href="#local-6989586621680795910"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795911"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795910"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-120"></span><span id="listToUFM"><span class="annot"><span class="annottext">listToUFM :: forall key elt. Uniquable key =&gt; [(key, elt)] -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#listToUFM"><span class="hs-identifier hs-var hs-var">listToUFM</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(UniqFM key elt -&gt; (key, elt) -&gt; UniqFM key elt)
-&gt; UniqFM key elt -&gt; [(key, elt)] -&gt; UniqFM key elt
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621680795300"><span class="annot"><span class="annottext">UniqFM key elt
</span><a href="#local-6989586621680795300"><span class="hs-identifier hs-var">m</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680795299"><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795299"><span class="hs-identifier hs-var">k</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680795298"><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795298"><span class="hs-identifier hs-var">v</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">UniqFM key elt -&gt; key -&gt; elt -&gt; UniqFM key elt
forall key elt.
Uniquable key =&gt;
UniqFM key elt -&gt; key -&gt; elt -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#addToUFM"><span class="hs-identifier hs-var">addToUFM</span></a></span><span> </span><span class="annot"><span class="annottext">UniqFM key elt
</span><a href="#local-6989586621680795300"><span class="hs-identifier hs-var">m</span></a></span><span> </span><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795299"><span class="hs-identifier hs-var">k</span></a></span><span> </span><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795298"><span class="hs-identifier hs-var">v</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">UniqFM key elt
forall key elt. UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#emptyUFM"><span class="hs-identifier hs-var">emptyUFM</span></a></span><span>
</span><span id="line-121"></span><span>
</span><span id="line-122"></span><span id="local-6989586621680795901"><span id="local-6989586621680795902"><span class="annot"><a href="GHC.Types.Unique.FM.html#listToUFM_Directly"><span class="hs-identifier hs-type">listToUFM_Directly</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680795902"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795901"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795902"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-123"></span><span id="listToUFM_Directly"><span class="annot"><span class="annottext">listToUFM_Directly :: forall elt key. [(Unique, elt)] -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#listToUFM_Directly"><span class="hs-identifier hs-var hs-var">listToUFM_Directly</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(UniqFM key elt -&gt; (Unique, elt) -&gt; UniqFM key elt)
-&gt; UniqFM key elt -&gt; [(Unique, elt)] -&gt; UniqFM key elt
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621680795296"><span class="annot"><span class="annottext">UniqFM key elt
</span><a href="#local-6989586621680795296"><span class="hs-identifier hs-var">m</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680795295"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621680795295"><span class="hs-identifier hs-var">u</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680795294"><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795294"><span class="hs-identifier hs-var">v</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">UniqFM key elt -&gt; Unique -&gt; elt -&gt; UniqFM key elt
forall key elt. UniqFM key elt -&gt; Unique -&gt; elt -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#addToUFM_Directly"><span class="hs-identifier hs-var">addToUFM_Directly</span></a></span><span> </span><span class="annot"><span class="annottext">UniqFM key elt
</span><a href="#local-6989586621680795296"><span class="hs-identifier hs-var">m</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621680795295"><span class="hs-identifier hs-var">u</span></a></span><span> </span><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795294"><span class="hs-identifier hs-var">v</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">UniqFM key elt
forall key elt. UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#emptyUFM"><span class="hs-identifier hs-var">emptyUFM</span></a></span><span>
</span><span id="line-124"></span><span>
</span><span id="line-125"></span><span id="local-6989586621680795896"><span class="annot"><a href="GHC.Types.Unique.FM.html#listToIdentityUFM"><span class="hs-identifier hs-type">listToIdentityUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795896"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680795896"><span class="hs-identifier hs-type">key</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795896"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795896"><span class="hs-identifier hs-type">key</span></a></span></span><span>
</span><span id="line-126"></span><span id="listToIdentityUFM"><span class="annot"><span class="annottext">listToIdentityUFM :: forall key. Uniquable key =&gt; [key] -&gt; UniqFM key key
</span><a href="GHC.Types.Unique.FM.html#listToIdentityUFM"><span class="hs-identifier hs-var hs-var">listToIdentityUFM</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(UniqFM key key -&gt; key -&gt; UniqFM key key)
-&gt; UniqFM key key -&gt; [key] -&gt; UniqFM key key
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621680795290"><span class="annot"><span class="annottext">UniqFM key key
</span><a href="#local-6989586621680795290"><span class="hs-identifier hs-var">m</span></a></span></span><span> </span><span id="local-6989586621680795289"><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795289"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">UniqFM key key -&gt; key -&gt; key -&gt; UniqFM key key
forall key elt.
Uniquable key =&gt;
UniqFM key elt -&gt; key -&gt; elt -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#addToUFM"><span class="hs-identifier hs-var">addToUFM</span></a></span><span> </span><span class="annot"><span class="annottext">UniqFM key key
</span><a href="#local-6989586621680795290"><span class="hs-identifier hs-var">m</span></a></span><span> </span><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795289"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795289"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">UniqFM key key
forall key elt. UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#emptyUFM"><span class="hs-identifier hs-var">emptyUFM</span></a></span><span>
</span><span id="line-127"></span><span>
</span><span id="line-128"></span><span id="local-6989586621680795893"><span id="local-6989586621680795894"><span class="annot"><a href="GHC.Types.Unique.FM.html#listToUFM_C"><span class="hs-identifier hs-type">listToUFM_C</span></a></span><span>
</span><span id="line-129"></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795894"><span class="hs-identifier hs-type">key</span></a></span><span>
</span><span id="line-130"></span><span>  </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795893"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795893"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795893"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-131"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795894"><span class="hs-identifier hs-type">key</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680795893"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-132"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795894"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795893"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-133"></span><span id="listToUFM_C"><span class="annot"><span class="annottext">listToUFM_C :: forall key elt.
Uniquable key =&gt;
(elt -&gt; elt -&gt; elt) -&gt; [(key, elt)] -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#listToUFM_C"><span class="hs-identifier hs-var hs-var">listToUFM_C</span></a></span></span><span> </span><span id="local-6989586621680795285"><span class="annot"><span class="annottext">elt -&gt; elt -&gt; elt
</span><a href="#local-6989586621680795285"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(UniqFM key elt -&gt; (key, elt) -&gt; UniqFM key elt)
-&gt; UniqFM key elt -&gt; [(key, elt)] -&gt; UniqFM key elt
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621680795284"><span class="annot"><span class="annottext">UniqFM key elt
</span><a href="#local-6989586621680795284"><span class="hs-identifier hs-var">m</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680795283"><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795283"><span class="hs-identifier hs-var">k</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680795282"><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795282"><span class="hs-identifier hs-var">v</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(elt -&gt; elt -&gt; elt)
-&gt; UniqFM key elt -&gt; key -&gt; elt -&gt; UniqFM key elt
forall key elt.
Uniquable key =&gt;
(elt -&gt; elt -&gt; elt)
-&gt; UniqFM key elt -&gt; key -&gt; elt -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#addToUFM_C"><span class="hs-identifier hs-var">addToUFM_C</span></a></span><span> </span><span class="annot"><span class="annottext">elt -&gt; elt -&gt; elt
</span><a href="#local-6989586621680795285"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">UniqFM key elt
</span><a href="#local-6989586621680795284"><span class="hs-identifier hs-var">m</span></a></span><span> </span><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795283"><span class="hs-identifier hs-var">k</span></a></span><span> </span><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795282"><span class="hs-identifier hs-var">v</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">UniqFM key elt
forall key elt. UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#emptyUFM"><span class="hs-identifier hs-var">emptyUFM</span></a></span><span>
</span><span id="line-134"></span><span>
</span><span id="line-135"></span><span id="local-6989586621680795903"><span id="local-6989586621680795904"><span class="annot"><a href="GHC.Types.Unique.FM.html#addToUFM"><span class="hs-identifier hs-type">addToUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795904"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795904"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795903"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795904"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795903"><span class="hs-identifier hs-type">elt</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795904"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795903"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-136"></span><span id="addToUFM"><span class="annot"><span class="annottext">addToUFM :: forall key elt.
Uniquable key =&gt;
UniqFM key elt -&gt; key -&gt; elt -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#addToUFM"><span class="hs-identifier hs-var hs-var">addToUFM</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795279"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795279"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621680795278"><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795278"><span class="hs-identifier hs-var">k</span></a></span></span><span> </span><span id="local-6989586621680795277"><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795277"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; UniqFM key elt
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; elt -&gt; IntMap elt -&gt; IntMap elt
forall a. Int -&gt; a -&gt; IntMap a -&gt; IntMap a
</span><a href="../../containers/src/Data.IntMap.Internal.html#insert"><span class="hs-identifier hs-var">M.insert</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unique -&gt; Int
</span><a href="GHC.Types.Unique.html#getKey"><span class="hs-identifier hs-var">getKey</span></a></span><span> </span><span class="annot"><span class="annottext">(Unique -&gt; Int) -&gt; Unique -&gt; Int
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">key -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795278"><span class="hs-identifier hs-var">k</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795277"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795279"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-137"></span><span>
</span><span id="line-138"></span><span id="local-6989586621680795884"><span id="local-6989586621680795885"><span class="annot"><a href="GHC.Types.Unique.FM.html#addListToUFM"><span class="hs-identifier hs-type">addListToUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795885"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795885"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795884"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795885"><span class="hs-identifier hs-type">key</span></a></span><span class="hs-special">,</span><span class="annot"><a href="#local-6989586621680795884"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795885"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795884"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-139"></span><span id="addListToUFM"><span class="annot"><span class="annottext">addListToUFM :: forall key elt.
Uniquable key =&gt;
UniqFM key elt -&gt; [(key, elt)] -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#addListToUFM"><span class="hs-identifier hs-var hs-var">addListToUFM</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(UniqFM key elt -&gt; (key, elt) -&gt; UniqFM key elt)
-&gt; UniqFM key elt -&gt; [(key, elt)] -&gt; UniqFM key elt
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621680795272"><span class="annot"><span class="annottext">UniqFM key elt
</span><a href="#local-6989586621680795272"><span class="hs-identifier hs-var">m</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680795271"><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795271"><span class="hs-identifier hs-var">k</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680795270"><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795270"><span class="hs-identifier hs-var">v</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">UniqFM key elt -&gt; key -&gt; elt -&gt; UniqFM key elt
forall key elt.
Uniquable key =&gt;
UniqFM key elt -&gt; key -&gt; elt -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#addToUFM"><span class="hs-identifier hs-var">addToUFM</span></a></span><span> </span><span class="annot"><span class="annottext">UniqFM key elt
</span><a href="#local-6989586621680795272"><span class="hs-identifier hs-var">m</span></a></span><span> </span><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795271"><span class="hs-identifier hs-var">k</span></a></span><span> </span><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795270"><span class="hs-identifier hs-var">v</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-140"></span><span>
</span><span id="line-141"></span><span id="local-6989586621680795880"><span id="local-6989586621680795881"><span class="annot"><a href="GHC.Types.Unique.FM.html#addListToUFM_Directly"><span class="hs-identifier hs-type">addListToUFM_Directly</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795881"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795880"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span class="hs-special">,</span><span class="annot"><a href="#local-6989586621680795880"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795881"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795880"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-142"></span><span id="addListToUFM_Directly"><span class="annot"><span class="annottext">addListToUFM_Directly :: forall key elt. UniqFM key elt -&gt; [(Unique, elt)] -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#addListToUFM_Directly"><span class="hs-identifier hs-var hs-var">addListToUFM_Directly</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(UniqFM key elt -&gt; (Unique, elt) -&gt; UniqFM key elt)
-&gt; UniqFM key elt -&gt; [(Unique, elt)] -&gt; UniqFM key elt
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621680795268"><span class="annot"><span class="annottext">UniqFM key elt
</span><a href="#local-6989586621680795268"><span class="hs-identifier hs-var">m</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680795267"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621680795267"><span class="hs-identifier hs-var">k</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680795266"><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795266"><span class="hs-identifier hs-var">v</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">UniqFM key elt -&gt; Unique -&gt; elt -&gt; UniqFM key elt
forall key elt. UniqFM key elt -&gt; Unique -&gt; elt -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#addToUFM_Directly"><span class="hs-identifier hs-var">addToUFM_Directly</span></a></span><span> </span><span class="annot"><span class="annottext">UniqFM key elt
</span><a href="#local-6989586621680795268"><span class="hs-identifier hs-var">m</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621680795267"><span class="hs-identifier hs-var">k</span></a></span><span> </span><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795266"><span class="hs-identifier hs-var">v</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-143"></span><span>
</span><span id="line-144"></span><span id="local-6989586621680795897"><span id="local-6989586621680795898"><span class="annot"><a href="GHC.Types.Unique.FM.html#addToUFM_Directly"><span class="hs-identifier hs-type">addToUFM_Directly</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795898"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795897"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795897"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795898"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795897"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-145"></span><span id="addToUFM_Directly"><span class="annot"><span class="annottext">addToUFM_Directly :: forall key elt. UniqFM key elt -&gt; Unique -&gt; elt -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#addToUFM_Directly"><span class="hs-identifier hs-var hs-var">addToUFM_Directly</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795265"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795265"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621680795264"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621680795264"><span class="hs-identifier hs-var">u</span></a></span></span><span> </span><span id="local-6989586621680795263"><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795263"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; UniqFM key elt
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; elt -&gt; IntMap elt -&gt; IntMap elt
forall a. Int -&gt; a -&gt; IntMap a -&gt; IntMap a
</span><a href="../../containers/src/Data.IntMap.Internal.html#insert"><span class="hs-identifier hs-var">M.insert</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unique -&gt; Int
</span><a href="GHC.Types.Unique.html#getKey"><span class="hs-identifier hs-var">getKey</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621680795264"><span class="hs-identifier hs-var">u</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795263"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795265"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-146"></span><span>
</span><span id="line-147"></span><span id="local-6989586621680795889"><span id="local-6989586621680795890"><span class="annot"><a href="GHC.Types.Unique.FM.html#addToUFM_C"><span class="hs-identifier hs-type">addToUFM_C</span></a></span><span>
</span><span id="line-148"></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795890"><span class="hs-identifier hs-type">key</span></a></span><span>
</span><span id="line-149"></span><span>  </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795889"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795889"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795889"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">)</span><span>  </span><span class="hs-comment">-- old -&gt; new -&gt; result</span><span>
</span><span id="line-150"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795890"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795889"><span class="hs-identifier hs-type">elt</span></a></span><span>           </span><span class="hs-comment">-- old</span><span>
</span><span id="line-151"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795890"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795889"><span class="hs-identifier hs-type">elt</span></a></span><span>           </span><span class="hs-comment">-- new</span><span>
</span><span id="line-152"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795890"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795889"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>           </span><span class="hs-comment">-- result</span><span>
</span><span id="line-153"></span><span class="hs-comment">-- Arguments of combining function of M.insertWith and addToUFM_C are flipped.</span><span>
</span><span id="line-154"></span><span id="addToUFM_C"><span class="annot"><span class="annottext">addToUFM_C :: forall key elt.
Uniquable key =&gt;
(elt -&gt; elt -&gt; elt)
-&gt; UniqFM key elt -&gt; key -&gt; elt -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#addToUFM_C"><span class="hs-identifier hs-var hs-var">addToUFM_C</span></a></span></span><span> </span><span id="local-6989586621680795260"><span class="annot"><span class="annottext">elt -&gt; elt -&gt; elt
</span><a href="#local-6989586621680795260"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795259"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795259"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621680795258"><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795258"><span class="hs-identifier hs-var">k</span></a></span></span><span> </span><span id="local-6989586621680795257"><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795257"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-155"></span><span>  </span><span class="annot"><span class="annottext">IntMap elt -&gt; UniqFM key elt
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(elt -&gt; elt -&gt; elt) -&gt; Int -&gt; elt -&gt; IntMap elt -&gt; IntMap elt
forall a. (a -&gt; a -&gt; a) -&gt; Int -&gt; a -&gt; IntMap a -&gt; IntMap a
</span><a href="../../containers/src/Data.IntMap.Internal.html#insertWith"><span class="hs-identifier hs-var">M.insertWith</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(elt -&gt; elt -&gt; elt) -&gt; elt -&gt; elt -&gt; elt
forall a b c. (a -&gt; b -&gt; c) -&gt; b -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#flip"><span class="hs-identifier hs-var">flip</span></a></span><span> </span><span class="annot"><span class="annottext">elt -&gt; elt -&gt; elt
</span><a href="#local-6989586621680795260"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unique -&gt; Int
</span><a href="GHC.Types.Unique.html#getKey"><span class="hs-identifier hs-var">getKey</span></a></span><span> </span><span class="annot"><span class="annottext">(Unique -&gt; Int) -&gt; Unique -&gt; Int
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">key -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795258"><span class="hs-identifier hs-var">k</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795257"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795259"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-156"></span><span>
</span><span id="line-157"></span><span id="local-6989586621680795867"><span id="local-6989586621680795868"><span id="local-6989586621680795869"><span class="annot"><a href="GHC.Types.Unique.FM.html#addToUFM_Acc"><span class="hs-identifier hs-type">addToUFM_Acc</span></a></span><span>
</span><span id="line-158"></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795869"><span class="hs-identifier hs-type">key</span></a></span><span>
</span><span id="line-159"></span><span>  </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795868"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795867"><span class="hs-identifier hs-type">elts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795867"><span class="hs-identifier hs-type">elts</span></a></span><span class="hs-special">)</span><span>  </span><span class="hs-comment">-- Add to existing</span><span>
</span><span id="line-160"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795868"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795867"><span class="hs-identifier hs-type">elts</span></a></span><span class="hs-special">)</span><span>          </span><span class="hs-comment">-- New element</span><span>
</span><span id="line-161"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795869"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795867"><span class="hs-identifier hs-type">elts</span></a></span><span>            </span><span class="hs-comment">-- old</span><span>
</span><span id="line-162"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795869"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795868"><span class="hs-identifier hs-type">elt</span></a></span><span>             </span><span class="hs-comment">-- new</span><span>
</span><span id="line-163"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795869"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795867"><span class="hs-identifier hs-type">elts</span></a></span></span></span></span><span>            </span><span class="hs-comment">-- result</span><span>
</span><span id="line-164"></span><span id="addToUFM_Acc"><span class="annot"><span class="annottext">addToUFM_Acc :: forall key elt elts.
Uniquable key =&gt;
(elt -&gt; elts -&gt; elts)
-&gt; (elt -&gt; elts)
-&gt; UniqFM key elts
-&gt; key
-&gt; elt
-&gt; UniqFM key elts
</span><a href="GHC.Types.Unique.FM.html#addToUFM_Acc"><span class="hs-identifier hs-var hs-var">addToUFM_Acc</span></a></span></span><span> </span><span id="local-6989586621680795252"><span class="annot"><span class="annottext">elt -&gt; elts -&gt; elts
</span><a href="#local-6989586621680795252"><span class="hs-identifier hs-var">exi</span></a></span></span><span> </span><span id="local-6989586621680795251"><span class="annot"><span class="annottext">elt -&gt; elts
</span><a href="#local-6989586621680795251"><span class="hs-identifier hs-var">new</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795250"><span class="annot"><span class="annottext">IntMap elts
</span><a href="#local-6989586621680795250"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621680795249"><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795249"><span class="hs-identifier hs-var">k</span></a></span></span><span> </span><span id="local-6989586621680795248"><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795248"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-165"></span><span>  </span><span class="annot"><span class="annottext">IntMap elts -&gt; UniqFM key elts
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(elts -&gt; elts -&gt; elts) -&gt; Int -&gt; elts -&gt; IntMap elts -&gt; IntMap elts
forall a. (a -&gt; a -&gt; a) -&gt; Int -&gt; a -&gt; IntMap a -&gt; IntMap a
</span><a href="../../containers/src/Data.IntMap.Internal.html#insertWith"><span class="hs-identifier hs-var">M.insertWith</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621680795247"><span class="annot"><span class="annottext">elts
</span><a href="#local-6989586621680795247"><span class="hs-identifier hs-var">_new</span></a></span></span><span> </span><span id="local-6989586621680795246"><span class="annot"><span class="annottext">elts
</span><a href="#local-6989586621680795246"><span class="hs-identifier hs-var">old</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">elt -&gt; elts -&gt; elts
</span><a href="#local-6989586621680795252"><span class="hs-identifier hs-var">exi</span></a></span><span> </span><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795248"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">elts
</span><a href="#local-6989586621680795246"><span class="hs-identifier hs-var">old</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unique -&gt; Int
</span><a href="GHC.Types.Unique.html#getKey"><span class="hs-identifier hs-var">getKey</span></a></span><span> </span><span class="annot"><span class="annottext">(Unique -&gt; Int) -&gt; Unique -&gt; Int
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">key -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795249"><span class="hs-identifier hs-var">k</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">elt -&gt; elts
</span><a href="#local-6989586621680795251"><span class="hs-identifier hs-var">new</span></a></span><span> </span><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795248"><span class="hs-identifier hs-var">v</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">IntMap elts
</span><a href="#local-6989586621680795250"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-166"></span><span>
</span><span id="line-167"></span><span id="local-6989586621680795862"><span id="local-6989586621680795863"><span class="annot"><a href="GHC.Types.Unique.FM.html#alterUFM"><span class="hs-identifier hs-type">alterUFM</span></a></span><span>
</span><span id="line-168"></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795863"><span class="hs-identifier hs-type">key</span></a></span><span>
</span><span id="line-169"></span><span>  </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795862"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795862"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">)</span><span>  </span><span class="hs-comment">-- How to adjust</span><span>
</span><span id="line-170"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795863"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795862"><span class="hs-identifier hs-type">elt</span></a></span><span>                </span><span class="hs-comment">-- old</span><span>
</span><span id="line-171"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795863"><span class="hs-identifier hs-type">key</span></a></span><span>                       </span><span class="hs-comment">-- new</span><span>
</span><span id="line-172"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795863"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795862"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>                </span><span class="hs-comment">-- result</span><span>
</span><span id="line-173"></span><span id="alterUFM"><span class="annot"><span class="annottext">alterUFM :: forall key elt.
Uniquable key =&gt;
(Maybe elt -&gt; Maybe elt) -&gt; UniqFM key elt -&gt; key -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#alterUFM"><span class="hs-identifier hs-var hs-var">alterUFM</span></a></span></span><span> </span><span id="local-6989586621680795243"><span class="annot"><span class="annottext">Maybe elt -&gt; Maybe elt
</span><a href="#local-6989586621680795243"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795242"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795242"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621680795241"><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795241"><span class="hs-identifier hs-var">k</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; UniqFM key elt
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Maybe elt -&gt; Maybe elt) -&gt; Int -&gt; IntMap elt -&gt; IntMap elt
forall a. (Maybe a -&gt; Maybe a) -&gt; Int -&gt; IntMap a -&gt; IntMap a
</span><a href="../../containers/src/Data.IntMap.Internal.html#alter"><span class="hs-identifier hs-var">M.alter</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe elt -&gt; Maybe elt
</span><a href="#local-6989586621680795243"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unique -&gt; Int
</span><a href="GHC.Types.Unique.html#getKey"><span class="hs-identifier hs-var">getKey</span></a></span><span> </span><span class="annot"><span class="annottext">(Unique -&gt; Int) -&gt; Unique -&gt; Int
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">key -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795241"><span class="hs-identifier hs-var">k</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795242"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-174"></span><span>
</span><span id="line-175"></span><span class="hs-comment">-- | Add elements to the map, combining existing values with inserted ones using</span><span>
</span><span id="line-176"></span><span class="hs-comment">-- the given function.</span><span>
</span><span id="line-177"></span><span id="local-6989586621680795857"><span id="local-6989586621680795858"><span class="annot"><a href="GHC.Types.Unique.FM.html#addListToUFM_C"><span class="hs-identifier hs-type">addListToUFM_C</span></a></span><span>
</span><span id="line-178"></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795858"><span class="hs-identifier hs-type">key</span></a></span><span>
</span><span id="line-179"></span><span>  </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795857"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795857"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795857"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-180"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795858"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795857"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795858"><span class="hs-identifier hs-type">key</span></a></span><span class="hs-special">,</span><span class="annot"><a href="#local-6989586621680795857"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-181"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795858"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795857"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-182"></span><span id="addListToUFM_C"><span class="annot"><span class="annottext">addListToUFM_C :: forall key elt.
Uniquable key =&gt;
(elt -&gt; elt -&gt; elt)
-&gt; UniqFM key elt -&gt; [(key, elt)] -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#addListToUFM_C"><span class="hs-identifier hs-var hs-var">addListToUFM_C</span></a></span></span><span> </span><span id="local-6989586621680795236"><span class="annot"><span class="annottext">elt -&gt; elt -&gt; elt
</span><a href="#local-6989586621680795236"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(UniqFM key elt -&gt; (key, elt) -&gt; UniqFM key elt)
-&gt; UniqFM key elt -&gt; [(key, elt)] -&gt; UniqFM key elt
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621680795235"><span class="annot"><span class="annottext">UniqFM key elt
</span><a href="#local-6989586621680795235"><span class="hs-identifier hs-var">m</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680795234"><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795234"><span class="hs-identifier hs-var">k</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680795233"><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795233"><span class="hs-identifier hs-var">v</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(elt -&gt; elt -&gt; elt)
-&gt; UniqFM key elt -&gt; key -&gt; elt -&gt; UniqFM key elt
forall key elt.
Uniquable key =&gt;
(elt -&gt; elt -&gt; elt)
-&gt; UniqFM key elt -&gt; key -&gt; elt -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#addToUFM_C"><span class="hs-identifier hs-var">addToUFM_C</span></a></span><span> </span><span class="annot"><span class="annottext">elt -&gt; elt -&gt; elt
</span><a href="#local-6989586621680795236"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">UniqFM key elt
</span><a href="#local-6989586621680795235"><span class="hs-identifier hs-var">m</span></a></span><span> </span><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795234"><span class="hs-identifier hs-var">k</span></a></span><span> </span><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795233"><span class="hs-identifier hs-var">v</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-183"></span><span>
</span><span id="line-184"></span><span id="local-6989586621680795853"><span id="local-6989586621680795854"><span class="annot"><a href="GHC.Types.Unique.FM.html#adjustUFM"><span class="hs-identifier hs-type">adjustUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795854"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795853"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795853"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795854"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795853"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795854"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795854"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795853"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-185"></span><span id="adjustUFM"><span class="annot"><span class="annottext">adjustUFM :: forall key elt.
Uniquable key =&gt;
(elt -&gt; elt) -&gt; UniqFM key elt -&gt; key -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#adjustUFM"><span class="hs-identifier hs-var hs-var">adjustUFM</span></a></span></span><span> </span><span id="local-6989586621680795230"><span class="annot"><span class="annottext">elt -&gt; elt
</span><a href="#local-6989586621680795230"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795229"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795229"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621680795228"><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795228"><span class="hs-identifier hs-var">k</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; UniqFM key elt
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(elt -&gt; elt) -&gt; Int -&gt; IntMap elt -&gt; IntMap elt
forall a. (a -&gt; a) -&gt; Int -&gt; IntMap a -&gt; IntMap a
</span><a href="../../containers/src/Data.IntMap.Internal.html#adjust"><span class="hs-identifier hs-var">M.adjust</span></a></span><span> </span><span class="annot"><span class="annottext">elt -&gt; elt
</span><a href="#local-6989586621680795230"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unique -&gt; Int
</span><a href="GHC.Types.Unique.html#getKey"><span class="hs-identifier hs-var">getKey</span></a></span><span> </span><span class="annot"><span class="annottext">(Unique -&gt; Int) -&gt; Unique -&gt; Int
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">key -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795228"><span class="hs-identifier hs-var">k</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795229"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-186"></span><span>
</span><span id="line-187"></span><span id="local-6989586621680795848"><span id="local-6989586621680795849"><span class="annot"><a href="GHC.Types.Unique.FM.html#adjustUFM_Directly"><span class="hs-identifier hs-type">adjustUFM_Directly</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795849"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795849"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795848"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795849"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795848"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795849"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-188"></span><span id="adjustUFM_Directly"><span class="annot"><span class="annottext">adjustUFM_Directly :: forall elt key.
(elt -&gt; elt) -&gt; UniqFM key elt -&gt; Unique -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#adjustUFM_Directly"><span class="hs-identifier hs-var hs-var">adjustUFM_Directly</span></a></span></span><span> </span><span id="local-6989586621680795226"><span class="annot"><span class="annottext">elt -&gt; elt
</span><a href="#local-6989586621680795226"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795225"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795225"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621680795224"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621680795224"><span class="hs-identifier hs-var">u</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; UniqFM key elt
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(elt -&gt; elt) -&gt; Int -&gt; IntMap elt -&gt; IntMap elt
forall a. (a -&gt; a) -&gt; Int -&gt; IntMap a -&gt; IntMap a
</span><a href="../../containers/src/Data.IntMap.Internal.html#adjust"><span class="hs-identifier hs-var">M.adjust</span></a></span><span> </span><span class="annot"><span class="annottext">elt -&gt; elt
</span><a href="#local-6989586621680795226"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unique -&gt; Int
</span><a href="GHC.Types.Unique.html#getKey"><span class="hs-identifier hs-var">getKey</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621680795224"><span class="hs-identifier hs-var">u</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795225"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-189"></span><span>
</span><span id="line-190"></span><span id="local-6989586621680795844"><span id="local-6989586621680795845"><span class="annot"><a href="GHC.Types.Unique.FM.html#delFromUFM"><span class="hs-identifier hs-type">delFromUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795845"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795845"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795844"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795845"><span class="hs-identifier hs-type">key</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795845"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795844"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-191"></span><span id="delFromUFM"><span class="annot"><span class="annottext">delFromUFM :: forall key elt.
Uniquable key =&gt;
UniqFM key elt -&gt; key -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#delFromUFM"><span class="hs-identifier hs-var hs-var">delFromUFM</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795221"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795221"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621680795220"><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795220"><span class="hs-identifier hs-var">k</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; UniqFM key elt
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; IntMap elt -&gt; IntMap elt
forall a. Int -&gt; IntMap a -&gt; IntMap a
</span><a href="../../containers/src/Data.IntMap.Internal.html#delete"><span class="hs-identifier hs-var">M.delete</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unique -&gt; Int
</span><a href="GHC.Types.Unique.html#getKey"><span class="hs-identifier hs-var">getKey</span></a></span><span> </span><span class="annot"><span class="annottext">(Unique -&gt; Int) -&gt; Unique -&gt; Int
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">key -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795220"><span class="hs-identifier hs-var">k</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795221"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-192"></span><span>
</span><span id="line-193"></span><span id="local-6989586621680795839"><span id="local-6989586621680795840"><span class="annot"><a href="GHC.Types.Unique.FM.html#delListFromUFM"><span class="hs-identifier hs-type">delListFromUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795840"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795840"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795839"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680795840"><span class="hs-identifier hs-type">key</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795840"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795839"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-194"></span><span id="delListFromUFM"><span class="annot"><span class="annottext">delListFromUFM :: forall key elt.
Uniquable key =&gt;
UniqFM key elt -&gt; [key] -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#delListFromUFM"><span class="hs-identifier hs-var hs-var">delListFromUFM</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(UniqFM key elt -&gt; key -&gt; UniqFM key elt)
-&gt; UniqFM key elt -&gt; [key] -&gt; UniqFM key elt
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="annot"><span class="annottext">UniqFM key elt -&gt; key -&gt; UniqFM key elt
forall key elt.
Uniquable key =&gt;
UniqFM key elt -&gt; key -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#delFromUFM"><span class="hs-identifier hs-var">delFromUFM</span></a></span><span>
</span><span id="line-195"></span><span>
</span><span id="line-196"></span><span id="local-6989586621680795835"><span id="local-6989586621680795836"><span class="annot"><a href="GHC.Types.Unique.FM.html#delListFromUFM_Directly"><span class="hs-identifier hs-type">delListFromUFM_Directly</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795836"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795835"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795836"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795835"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-197"></span><span id="delListFromUFM_Directly"><span class="annot"><span class="annottext">delListFromUFM_Directly :: forall key elt. UniqFM key elt -&gt; [Unique] -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#delListFromUFM_Directly"><span class="hs-identifier hs-var hs-var">delListFromUFM_Directly</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(UniqFM key elt -&gt; Unique -&gt; UniqFM key elt)
-&gt; UniqFM key elt -&gt; [Unique] -&gt; UniqFM key elt
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="annot"><span class="annottext">UniqFM key elt -&gt; Unique -&gt; UniqFM key elt
forall key elt. UniqFM key elt -&gt; Unique -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#delFromUFM_Directly"><span class="hs-identifier hs-var">delFromUFM_Directly</span></a></span><span>
</span><span id="line-198"></span><span>
</span><span id="line-199"></span><span id="local-6989586621680795831"><span id="local-6989586621680795832"><span class="annot"><a href="GHC.Types.Unique.FM.html#delFromUFM_Directly"><span class="hs-identifier hs-type">delFromUFM_Directly</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795832"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795831"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795832"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795831"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-200"></span><span id="delFromUFM_Directly"><span class="annot"><span class="annottext">delFromUFM_Directly :: forall key elt. UniqFM key elt -&gt; Unique -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#delFromUFM_Directly"><span class="hs-identifier hs-var hs-var">delFromUFM_Directly</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795214"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795214"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621680795213"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621680795213"><span class="hs-identifier hs-var">u</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; UniqFM key elt
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; IntMap elt -&gt; IntMap elt
forall a. Int -&gt; IntMap a -&gt; IntMap a
</span><a href="../../containers/src/Data.IntMap.Internal.html#delete"><span class="hs-identifier hs-var">M.delete</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unique -&gt; Int
</span><a href="GHC.Types.Unique.html#getKey"><span class="hs-identifier hs-var">getKey</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621680795213"><span class="hs-identifier hs-var">u</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795214"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-201"></span><span>
</span><span id="line-202"></span><span class="hs-comment">-- Bindings in right argument shadow those in the left</span><span>
</span><span id="line-203"></span><span id="local-6989586621680795827"><span id="local-6989586621680795828"><span class="annot"><a href="GHC.Types.Unique.FM.html#plusUFM"><span class="hs-identifier hs-type">plusUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795828"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795827"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795828"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795827"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795828"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795827"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-204"></span><span class="hs-comment">-- M.union is left-biased, plusUFM should be right-biased.</span><span>
</span><span id="line-205"></span><span id="plusUFM"><span class="annot"><span class="annottext">plusUFM :: forall key elt. UniqFM key elt -&gt; UniqFM key elt -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#plusUFM"><span class="hs-identifier hs-var hs-var">plusUFM</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795212"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795212"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795211"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795211"><span class="hs-identifier hs-var">y</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; UniqFM key elt
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IntMap elt -&gt; IntMap elt -&gt; IntMap elt
forall a. IntMap a -&gt; IntMap a -&gt; IntMap a
</span><a href="../../containers/src/Data.IntMap.Internal.html#union"><span class="hs-identifier hs-var">M.union</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795211"><span class="hs-identifier hs-var">y</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795212"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-206"></span><span>     </span><span class="hs-comment">-- Note (M.union y x), with arguments flipped</span><span>
</span><span id="line-207"></span><span>     </span><span class="hs-comment">-- M.union is left-biased, plusUFM should be right-biased.</span><span>
</span><span id="line-208"></span><span>
</span><span id="line-209"></span><span id="local-6989586621680795822"><span id="local-6989586621680795823"><span class="annot"><a href="GHC.Types.Unique.FM.html#plusUFM_C"><span class="hs-identifier hs-type">plusUFM_C</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795823"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795823"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795823"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795822"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795823"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795822"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795823"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795822"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795823"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-210"></span><span id="plusUFM_C"><span class="annot"><span class="annottext">plusUFM_C :: forall elt key.
(elt -&gt; elt -&gt; elt)
-&gt; UniqFM key elt -&gt; UniqFM key elt -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#plusUFM_C"><span class="hs-identifier hs-var hs-var">plusUFM_C</span></a></span></span><span> </span><span id="local-6989586621680795209"><span class="annot"><span class="annottext">elt -&gt; elt -&gt; elt
</span><a href="#local-6989586621680795209"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795208"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795208"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795207"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795207"><span class="hs-identifier hs-var">y</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; UniqFM key elt
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(elt -&gt; elt -&gt; elt) -&gt; IntMap elt -&gt; IntMap elt -&gt; IntMap elt
forall a. (a -&gt; a -&gt; a) -&gt; IntMap a -&gt; IntMap a -&gt; IntMap a
</span><a href="../../containers/src/Data.IntMap.Internal.html#unionWith"><span class="hs-identifier hs-var">M.unionWith</span></a></span><span> </span><span class="annot"><span class="annottext">elt -&gt; elt -&gt; elt
</span><a href="#local-6989586621680795209"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795208"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795207"><span class="hs-identifier hs-var">y</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-211"></span><span>
</span><span id="line-212"></span><span class="hs-comment">-- | `plusUFM_CD f m1 d1 m2 d2` merges the maps using `f` as the</span><span>
</span><span id="line-213"></span><span class="hs-comment">-- combinding function and `d1` resp. `d2` as the default value if</span><span>
</span><span id="line-214"></span><span class="hs-comment">-- there is no entry in `m1` reps. `m2`. The domain is the union of</span><span>
</span><span id="line-215"></span><span class="hs-comment">-- the domains of `m1` and `m2`.</span><span>
</span><span id="line-216"></span><span class="hs-comment">--</span><span>
</span><span id="line-217"></span><span class="hs-comment">-- Representative example:</span><span>
</span><span id="line-218"></span><span class="hs-comment">--</span><span>
</span><span id="line-219"></span><span class="hs-comment">-- @</span><span>
</span><span id="line-220"></span><span class="hs-comment">-- plusUFM_CD f {A: 1, B: 2} 23 {B: 3, C: 4} 42</span><span>
</span><span id="line-221"></span><span class="hs-comment">--    == {A: f 1 42, B: f 2 3, C: f 23 4 }</span><span>
</span><span id="line-222"></span><span class="hs-comment">-- @</span><span>
</span><span id="line-223"></span><span id="local-6989586621680795815"><span id="local-6989586621680795816"><span id="local-6989586621680795817"><span id="local-6989586621680795818"><span class="annot"><a href="GHC.Types.Unique.FM.html#plusUFM_CD"><span class="hs-identifier hs-type">plusUFM_CD</span></a></span><span>
</span><span id="line-224"></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795818"><span class="hs-identifier hs-type">elta</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795817"><span class="hs-identifier hs-type">eltb</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795816"><span class="hs-identifier hs-type">eltc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-225"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795815"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795818"><span class="hs-identifier hs-type">elta</span></a></span><span>  </span><span class="hs-comment">-- map X</span><span>
</span><span id="line-226"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795818"><span class="hs-identifier hs-type">elta</span></a></span><span>         </span><span class="hs-comment">-- default for X</span><span>
</span><span id="line-227"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795815"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795817"><span class="hs-identifier hs-type">eltb</span></a></span><span>  </span><span class="hs-comment">-- map Y</span><span>
</span><span id="line-228"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795817"><span class="hs-identifier hs-type">eltb</span></a></span><span>         </span><span class="hs-comment">-- default for Y</span><span>
</span><span id="line-229"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795815"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795816"><span class="hs-identifier hs-type">eltc</span></a></span></span></span></span></span><span>
</span><span id="line-230"></span><span id="plusUFM_CD"><span class="annot"><span class="annottext">plusUFM_CD :: forall elta eltb eltc key.
(elta -&gt; eltb -&gt; eltc)
-&gt; UniqFM key elta
-&gt; elta
-&gt; UniqFM key eltb
-&gt; eltb
-&gt; UniqFM key eltc
</span><a href="GHC.Types.Unique.FM.html#plusUFM_CD"><span class="hs-identifier hs-var hs-var">plusUFM_CD</span></a></span></span><span> </span><span id="local-6989586621680795205"><span class="annot"><span class="annottext">elta -&gt; eltb -&gt; eltc
</span><a href="#local-6989586621680795205"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795204"><span class="annot"><span class="annottext">IntMap elta
</span><a href="#local-6989586621680795204"><span class="hs-identifier hs-var">xm</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621680795203"><span class="annot"><span class="annottext">elta
</span><a href="#local-6989586621680795203"><span class="hs-identifier hs-var">dx</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795202"><span class="annot"><span class="annottext">IntMap eltb
</span><a href="#local-6989586621680795202"><span class="hs-identifier hs-var">ym</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621680795201"><span class="annot"><span class="annottext">eltb
</span><a href="#local-6989586621680795201"><span class="hs-identifier hs-var">dy</span></a></span></span><span>
</span><span id="line-231"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap eltc -&gt; UniqFM key eltc
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="annot"><span class="annottext">(IntMap eltc -&gt; UniqFM key eltc) -&gt; IntMap eltc -&gt; UniqFM key eltc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Int -&gt; elta -&gt; eltb -&gt; Maybe eltc)
-&gt; (IntMap elta -&gt; IntMap eltc)
-&gt; (IntMap eltb -&gt; IntMap eltc)
-&gt; IntMap elta
-&gt; IntMap eltb
-&gt; IntMap eltc
forall a b c.
(Int -&gt; a -&gt; b -&gt; Maybe c)
-&gt; (IntMap a -&gt; IntMap c)
-&gt; (IntMap b -&gt; IntMap c)
-&gt; IntMap a
-&gt; IntMap b
-&gt; IntMap c
</span><a href="../../containers/src/Data.IntMap.Internal.html#mergeWithKey"><span class="hs-identifier hs-var">M.mergeWithKey</span></a></span><span>
</span><span id="line-232"></span><span>      </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680795199"><span class="annot"><span class="annottext">elta
</span><a href="#local-6989586621680795199"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621680795198"><span class="annot"><span class="annottext">eltb
</span><a href="#local-6989586621680795198"><span class="hs-identifier hs-var">y</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">eltc -&gt; Maybe eltc
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">elta
</span><a href="#local-6989586621680795199"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">elta -&gt; eltb -&gt; eltc
</span><a href="#local-6989586621680795205"><span class="hs-operator hs-var">`f`</span></a></span><span> </span><span class="annot"><span class="annottext">eltb
</span><a href="#local-6989586621680795198"><span class="hs-identifier hs-var">y</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-233"></span><span>      </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(elta -&gt; eltc) -&gt; IntMap elta -&gt; IntMap eltc
forall a b. (a -&gt; b) -&gt; IntMap a -&gt; IntMap b
</span><a href="../../containers/src/Data.IntMap.Internal.html#map"><span class="hs-identifier hs-var">M.map</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621680795196"><span class="annot"><span class="annottext">elta
</span><a href="#local-6989586621680795196"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">elta
</span><a href="#local-6989586621680795196"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">elta -&gt; eltb -&gt; eltc
</span><a href="#local-6989586621680795205"><span class="hs-operator hs-var">`f`</span></a></span><span> </span><span class="annot"><span class="annottext">eltb
</span><a href="#local-6989586621680795201"><span class="hs-identifier hs-var">dy</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-234"></span><span>      </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(eltb -&gt; eltc) -&gt; IntMap eltb -&gt; IntMap eltc
forall a b. (a -&gt; b) -&gt; IntMap a -&gt; IntMap b
</span><a href="../../containers/src/Data.IntMap.Internal.html#map"><span class="hs-identifier hs-var">M.map</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621680795195"><span class="annot"><span class="annottext">eltb
</span><a href="#local-6989586621680795195"><span class="hs-identifier hs-var">y</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">elta
</span><a href="#local-6989586621680795203"><span class="hs-identifier hs-var">dx</span></a></span><span> </span><span class="annot"><span class="annottext">elta -&gt; eltb -&gt; eltc
</span><a href="#local-6989586621680795205"><span class="hs-operator hs-var">`f`</span></a></span><span> </span><span class="annot"><span class="annottext">eltb
</span><a href="#local-6989586621680795195"><span class="hs-identifier hs-var">y</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-235"></span><span>      </span><span class="annot"><span class="annottext">IntMap elta
</span><a href="#local-6989586621680795204"><span class="hs-identifier hs-var">xm</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap eltb
</span><a href="#local-6989586621680795202"><span class="hs-identifier hs-var">ym</span></a></span><span>
</span><span id="line-236"></span><span>
</span><span id="line-237"></span><span class="hs-comment">-- | `plusUFM_CD2 f m1 m2` merges the maps using `f` as the combining</span><span>
</span><span id="line-238"></span><span class="hs-comment">-- function. Unlike `plusUFM_CD`, a missing value is not defaulted: it is</span><span>
</span><span id="line-239"></span><span class="hs-comment">-- instead passed as `Nothing` to `f`. `f` can never have both its arguments</span><span>
</span><span id="line-240"></span><span class="hs-comment">-- be `Nothing`.</span><span>
</span><span id="line-241"></span><span class="hs-comment">--</span><span>
</span><span id="line-242"></span><span class="hs-comment">-- `plusUFM_CD2 f m1 m2` is the same as `plusUFM_CD f (mapUFM Just m1) Nothing</span><span>
</span><span id="line-243"></span><span class="hs-comment">-- (mapUFM Just m2) Nothing`.</span><span>
</span><span id="line-244"></span><span id="local-6989586621680795801"><span id="local-6989586621680795802"><span id="local-6989586621680795803"><span id="local-6989586621680795804"><span class="annot"><a href="GHC.Types.Unique.FM.html#plusUFM_CD2"><span class="hs-identifier hs-type">plusUFM_CD2</span></a></span><span>
</span><span id="line-245"></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795804"><span class="hs-identifier hs-type">elta</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795803"><span class="hs-identifier hs-type">eltb</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795802"><span class="hs-identifier hs-type">eltc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-246"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795801"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795804"><span class="hs-identifier hs-type">elta</span></a></span><span>  </span><span class="hs-comment">-- map X</span><span>
</span><span id="line-247"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795801"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795803"><span class="hs-identifier hs-type">eltb</span></a></span><span>  </span><span class="hs-comment">-- map Y</span><span>
</span><span id="line-248"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795801"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795802"><span class="hs-identifier hs-type">eltc</span></a></span></span></span></span></span><span>
</span><span id="line-249"></span><span id="plusUFM_CD2"><span class="annot"><span class="annottext">plusUFM_CD2 :: forall elta eltb eltc key.
(Maybe elta -&gt; Maybe eltb -&gt; eltc)
-&gt; UniqFM key elta -&gt; UniqFM key eltb -&gt; UniqFM key eltc
</span><a href="GHC.Types.Unique.FM.html#plusUFM_CD2"><span class="hs-identifier hs-var hs-var">plusUFM_CD2</span></a></span></span><span> </span><span id="local-6989586621680795194"><span class="annot"><span class="annottext">Maybe elta -&gt; Maybe eltb -&gt; eltc
</span><a href="#local-6989586621680795194"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795193"><span class="annot"><span class="annottext">IntMap elta
</span><a href="#local-6989586621680795193"><span class="hs-identifier hs-var">xm</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795192"><span class="annot"><span class="annottext">IntMap eltb
</span><a href="#local-6989586621680795192"><span class="hs-identifier hs-var">ym</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-250"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap eltc -&gt; UniqFM key eltc
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="annot"><span class="annottext">(IntMap eltc -&gt; UniqFM key eltc) -&gt; IntMap eltc -&gt; UniqFM key eltc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Int -&gt; elta -&gt; eltb -&gt; Maybe eltc)
-&gt; (IntMap elta -&gt; IntMap eltc)
-&gt; (IntMap eltb -&gt; IntMap eltc)
-&gt; IntMap elta
-&gt; IntMap eltb
-&gt; IntMap eltc
forall a b c.
(Int -&gt; a -&gt; b -&gt; Maybe c)
-&gt; (IntMap a -&gt; IntMap c)
-&gt; (IntMap b -&gt; IntMap c)
-&gt; IntMap a
-&gt; IntMap b
-&gt; IntMap c
</span><a href="../../containers/src/Data.IntMap.Internal.html#mergeWithKey"><span class="hs-identifier hs-var">M.mergeWithKey</span></a></span><span>
</span><span id="line-251"></span><span>      </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680795191"><span class="annot"><span class="annottext">elta
</span><a href="#local-6989586621680795191"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621680795190"><span class="annot"><span class="annottext">eltb
</span><a href="#local-6989586621680795190"><span class="hs-identifier hs-var">y</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">eltc -&gt; Maybe eltc
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">elta -&gt; Maybe elta
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">elta
</span><a href="#local-6989586621680795191"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe elta -&gt; Maybe eltb -&gt; eltc
</span><a href="#local-6989586621680795194"><span class="hs-operator hs-var">`f`</span></a></span><span> </span><span class="annot"><span class="annottext">eltb -&gt; Maybe eltb
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">eltb
</span><a href="#local-6989586621680795190"><span class="hs-identifier hs-var">y</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-252"></span><span>      </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(elta -&gt; eltc) -&gt; IntMap elta -&gt; IntMap eltc
forall a b. (a -&gt; b) -&gt; IntMap a -&gt; IntMap b
</span><a href="../../containers/src/Data.IntMap.Internal.html#map"><span class="hs-identifier hs-var">M.map</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621680795189"><span class="annot"><span class="annottext">elta
</span><a href="#local-6989586621680795189"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">elta -&gt; Maybe elta
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">elta
</span><a href="#local-6989586621680795189"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe elta -&gt; Maybe eltb -&gt; eltc
</span><a href="#local-6989586621680795194"><span class="hs-operator hs-var">`f`</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe eltb
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-253"></span><span>      </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(eltb -&gt; eltc) -&gt; IntMap eltb -&gt; IntMap eltc
forall a b. (a -&gt; b) -&gt; IntMap a -&gt; IntMap b
</span><a href="../../containers/src/Data.IntMap.Internal.html#map"><span class="hs-identifier hs-var">M.map</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621680795188"><span class="annot"><span class="annottext">eltb
</span><a href="#local-6989586621680795188"><span class="hs-identifier hs-var">y</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Maybe elta
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe elta -&gt; Maybe eltb -&gt; eltc
</span><a href="#local-6989586621680795194"><span class="hs-operator hs-var">`f`</span></a></span><span> </span><span class="annot"><span class="annottext">eltb -&gt; Maybe eltb
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">eltb
</span><a href="#local-6989586621680795188"><span class="hs-identifier hs-var">y</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-254"></span><span>      </span><span class="annot"><span class="annottext">IntMap elta
</span><a href="#local-6989586621680795193"><span class="hs-identifier hs-var">xm</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap eltb
</span><a href="#local-6989586621680795192"><span class="hs-identifier hs-var">ym</span></a></span><span>
</span><span id="line-255"></span><span>
</span><span id="line-256"></span><span id="local-6989586621680795793"><span id="local-6989586621680795794"><span id="local-6989586621680795795"><span id="local-6989586621680795796"><span class="annot"><a href="GHC.Types.Unique.FM.html#mergeUFM"><span class="hs-identifier hs-type">mergeUFM</span></a></span><span>
</span><span id="line-257"></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795796"><span class="hs-identifier hs-type">elta</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795795"><span class="hs-identifier hs-type">eltb</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795794"><span class="hs-identifier hs-type">eltc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-258"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795793"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795796"><span class="hs-identifier hs-type">elta</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795793"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795794"><span class="hs-identifier hs-type">eltc</span></a></span><span class="hs-special">)</span><span>  </span><span class="hs-comment">-- map X</span><span>
</span><span id="line-259"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795793"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795795"><span class="hs-identifier hs-type">eltb</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795793"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795794"><span class="hs-identifier hs-type">eltc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-comment">-- map Y</span><span>
</span><span id="line-260"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795793"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795796"><span class="hs-identifier hs-type">elta</span></a></span><span>
</span><span id="line-261"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795793"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795795"><span class="hs-identifier hs-type">eltb</span></a></span><span>
</span><span id="line-262"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795793"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795794"><span class="hs-identifier hs-type">eltc</span></a></span></span></span></span></span><span>
</span><span id="line-263"></span><span id="mergeUFM"><span class="annot"><span class="annottext">mergeUFM :: forall elta eltb eltc key.
(elta -&gt; eltb -&gt; Maybe eltc)
-&gt; (UniqFM key elta -&gt; UniqFM key eltc)
-&gt; (UniqFM key eltb -&gt; UniqFM key eltc)
-&gt; UniqFM key elta
-&gt; UniqFM key eltb
-&gt; UniqFM key eltc
</span><a href="GHC.Types.Unique.FM.html#mergeUFM"><span class="hs-identifier hs-var hs-var">mergeUFM</span></a></span></span><span> </span><span id="local-6989586621680795185"><span class="annot"><span class="annottext">elta -&gt; eltb -&gt; Maybe eltc
</span><a href="#local-6989586621680795185"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621680795184"><span class="annot"><span class="annottext">UniqFM key elta -&gt; UniqFM key eltc
</span><a href="#local-6989586621680795184"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span id="local-6989586621680795183"><span class="annot"><span class="annottext">UniqFM key eltb -&gt; UniqFM key eltc
</span><a href="#local-6989586621680795183"><span class="hs-identifier hs-var">h</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795182"><span class="annot"><span class="annottext">IntMap elta
</span><a href="#local-6989586621680795182"><span class="hs-identifier hs-var">xm</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795181"><span class="annot"><span class="annottext">IntMap eltb
</span><a href="#local-6989586621680795181"><span class="hs-identifier hs-var">ym</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-264"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap eltc -&gt; UniqFM key eltc
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="annot"><span class="annottext">(IntMap eltc -&gt; UniqFM key eltc) -&gt; IntMap eltc -&gt; UniqFM key eltc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Int -&gt; elta -&gt; eltb -&gt; Maybe eltc)
-&gt; (IntMap elta -&gt; IntMap eltc)
-&gt; (IntMap eltb -&gt; IntMap eltc)
-&gt; IntMap elta
-&gt; IntMap eltb
-&gt; IntMap eltc
forall a b c.
(Int -&gt; a -&gt; b -&gt; Maybe c)
-&gt; (IntMap a -&gt; IntMap c)
-&gt; (IntMap b -&gt; IntMap c)
-&gt; IntMap a
-&gt; IntMap b
-&gt; IntMap c
</span><a href="../../containers/src/Data.IntMap.Internal.html#mergeWithKey"><span class="hs-identifier hs-var">M.mergeWithKey</span></a></span><span>
</span><span id="line-265"></span><span>      </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680795180"><span class="annot"><span class="annottext">elta
</span><a href="#local-6989586621680795180"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621680795179"><span class="annot"><span class="annottext">eltb
</span><a href="#local-6989586621680795179"><span class="hs-identifier hs-var">y</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">elta
</span><a href="#local-6989586621680795180"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">elta -&gt; eltb -&gt; Maybe eltc
</span><a href="#local-6989586621680795185"><span class="hs-operator hs-var">`f`</span></a></span><span> </span><span class="annot"><span class="annottext">eltb
</span><a href="#local-6989586621680795179"><span class="hs-identifier hs-var">y</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-266"></span><span>      </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(UniqFM key elta -&gt; UniqFM key eltc) -&gt; IntMap elta -&gt; IntMap eltc
</span><span class="hs-identifier hs-var">coerce</span></span><span> </span><span class="annot"><span class="annottext">UniqFM key elta -&gt; UniqFM key eltc
</span><a href="#local-6989586621680795184"><span class="hs-identifier hs-var">g</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-267"></span><span>      </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(UniqFM key eltb -&gt; UniqFM key eltc) -&gt; IntMap eltb -&gt; IntMap eltc
</span><span class="hs-identifier hs-var">coerce</span></span><span> </span><span class="annot"><span class="annottext">UniqFM key eltb -&gt; UniqFM key eltc
</span><a href="#local-6989586621680795183"><span class="hs-identifier hs-var">h</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-268"></span><span>      </span><span class="annot"><span class="annottext">IntMap elta
</span><a href="#local-6989586621680795182"><span class="hs-identifier hs-var">xm</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap eltb
</span><a href="#local-6989586621680795181"><span class="hs-identifier hs-var">ym</span></a></span><span>
</span><span id="line-269"></span><span>
</span><span id="line-270"></span><span id="local-6989586621680795785"><span id="local-6989586621680795786"><span class="annot"><a href="GHC.Types.Unique.FM.html#plusMaybeUFM_C"><span class="hs-identifier hs-type">plusMaybeUFM_C</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795786"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795786"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795786"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-271"></span><span>               </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795785"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795786"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795785"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795786"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795785"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795786"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-272"></span><span id="plusMaybeUFM_C"><span class="annot"><span class="annottext">plusMaybeUFM_C :: forall elt key.
(elt -&gt; elt -&gt; Maybe elt)
-&gt; UniqFM key elt -&gt; UniqFM key elt -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#plusMaybeUFM_C"><span class="hs-identifier hs-var hs-var">plusMaybeUFM_C</span></a></span></span><span> </span><span id="local-6989586621680795178"><span class="annot"><span class="annottext">elt -&gt; elt -&gt; Maybe elt
</span><a href="#local-6989586621680795178"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795177"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795177"><span class="hs-identifier hs-var">xm</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795176"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795176"><span class="hs-identifier hs-var">ym</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-273"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; UniqFM key elt
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="annot"><span class="annottext">(IntMap elt -&gt; UniqFM key elt) -&gt; IntMap elt -&gt; UniqFM key elt
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Int -&gt; elt -&gt; elt -&gt; Maybe elt)
-&gt; (IntMap elt -&gt; IntMap elt)
-&gt; (IntMap elt -&gt; IntMap elt)
-&gt; IntMap elt
-&gt; IntMap elt
-&gt; IntMap elt
forall a b c.
(Int -&gt; a -&gt; b -&gt; Maybe c)
-&gt; (IntMap a -&gt; IntMap c)
-&gt; (IntMap b -&gt; IntMap c)
-&gt; IntMap a
-&gt; IntMap b
-&gt; IntMap c
</span><a href="../../containers/src/Data.IntMap.Internal.html#mergeWithKey"><span class="hs-identifier hs-var">M.mergeWithKey</span></a></span><span>
</span><span id="line-274"></span><span>        </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680795175"><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795175"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621680795174"><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795174"><span class="hs-identifier hs-var">y</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795175"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">elt -&gt; elt -&gt; Maybe elt
</span><a href="#local-6989586621680795178"><span class="hs-operator hs-var">`f`</span></a></span><span> </span><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795174"><span class="hs-identifier hs-var">y</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-275"></span><span>        </span><span class="annot"><span class="annottext">IntMap elt -&gt; IntMap elt
forall a. a -&gt; a
</span><a href="../../base/src/GHC.Base.html#id"><span class="hs-identifier hs-var">id</span></a></span><span>
</span><span id="line-276"></span><span>        </span><span class="annot"><span class="annottext">IntMap elt -&gt; IntMap elt
forall a. a -&gt; a
</span><a href="../../base/src/GHC.Base.html#id"><span class="hs-identifier hs-var">id</span></a></span><span>
</span><span id="line-277"></span><span>        </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795177"><span class="hs-identifier hs-var">xm</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795176"><span class="hs-identifier hs-var">ym</span></a></span><span>
</span><span id="line-278"></span><span>
</span><span id="line-279"></span><span id="local-6989586621680795780"><span id="local-6989586621680795781"><span class="annot"><a href="GHC.Types.Unique.FM.html#plusUFMList"><span class="hs-identifier hs-type">plusUFMList</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795781"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795780"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795781"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795780"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-280"></span><span id="plusUFMList"><span class="annot"><span class="annottext">plusUFMList :: forall key elt. [UniqFM key elt] -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#plusUFMList"><span class="hs-identifier hs-var hs-var">plusUFMList</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(UniqFM key elt -&gt; UniqFM key elt -&gt; UniqFM key elt)
-&gt; UniqFM key elt -&gt; [UniqFM key elt] -&gt; UniqFM key elt
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="annot"><span class="annottext">UniqFM key elt -&gt; UniqFM key elt -&gt; UniqFM key elt
forall key elt. UniqFM key elt -&gt; UniqFM key elt -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#plusUFM"><span class="hs-identifier hs-var">plusUFM</span></a></span><span> </span><span class="annot"><span class="annottext">UniqFM key elt
forall key elt. UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#emptyUFM"><span class="hs-identifier hs-var">emptyUFM</span></a></span><span>
</span><span id="line-281"></span><span>
</span><span id="line-282"></span><span id="local-6989586621680795775"><span id="local-6989586621680795776"><span id="local-6989586621680795777"><span class="annot"><a href="GHC.Types.Unique.FM.html#minusUFM"><span class="hs-identifier hs-type">minusUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795777"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795776"><span class="hs-identifier hs-type">elt1</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795777"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795775"><span class="hs-identifier hs-type">elt2</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795777"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795776"><span class="hs-identifier hs-type">elt1</span></a></span></span></span></span><span>
</span><span id="line-283"></span><span id="minusUFM"><span class="annot"><span class="annottext">minusUFM :: forall key elt1 elt2.
UniqFM key elt1 -&gt; UniqFM key elt2 -&gt; UniqFM key elt1
</span><a href="GHC.Types.Unique.FM.html#minusUFM"><span class="hs-identifier hs-var hs-var">minusUFM</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795171"><span class="annot"><span class="annottext">IntMap elt1
</span><a href="#local-6989586621680795171"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795170"><span class="annot"><span class="annottext">IntMap elt2
</span><a href="#local-6989586621680795170"><span class="hs-identifier hs-var">y</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt1 -&gt; UniqFM key elt1
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IntMap elt1 -&gt; IntMap elt2 -&gt; IntMap elt1
forall a b. IntMap a -&gt; IntMap b -&gt; IntMap a
</span><a href="../../containers/src/Data.IntMap.Internal.html#difference"><span class="hs-identifier hs-var">M.difference</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt1
</span><a href="#local-6989586621680795171"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt2
</span><a href="#local-6989586621680795170"><span class="hs-identifier hs-var">y</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-284"></span><span>
</span><span id="line-285"></span><span id="local-6989586621680795166"><span id="local-6989586621680795167"><span id="local-6989586621680795168"><span class="annot"><a href="GHC.Types.Unique.FM.html#intersectUFM"><span class="hs-identifier hs-type">intersectUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795168"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795167"><span class="hs-identifier hs-type">elt1</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795168"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795166"><span class="hs-identifier hs-type">elt2</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795168"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795167"><span class="hs-identifier hs-type">elt1</span></a></span></span></span></span><span>
</span><span id="line-286"></span><span id="intersectUFM"><span class="annot"><span class="annottext">intersectUFM :: forall key elt1 elt2.
UniqFM key elt1 -&gt; UniqFM key elt2 -&gt; UniqFM key elt1
</span><a href="GHC.Types.Unique.FM.html#intersectUFM"><span class="hs-identifier hs-var hs-var">intersectUFM</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795165"><span class="annot"><span class="annottext">IntMap elt1
</span><a href="#local-6989586621680795165"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795164"><span class="annot"><span class="annottext">IntMap elt2
</span><a href="#local-6989586621680795164"><span class="hs-identifier hs-var">y</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt1 -&gt; UniqFM key elt1
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IntMap elt1 -&gt; IntMap elt2 -&gt; IntMap elt1
forall a b. IntMap a -&gt; IntMap b -&gt; IntMap a
</span><a href="../../containers/src/Data.IntMap.Internal.html#intersection"><span class="hs-identifier hs-var">M.intersection</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt1
</span><a href="#local-6989586621680795165"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt2
</span><a href="#local-6989586621680795164"><span class="hs-identifier hs-var">y</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-287"></span><span>
</span><span id="line-288"></span><span id="local-6989586621680795763"><span id="local-6989586621680795764"><span id="local-6989586621680795765"><span id="local-6989586621680795766"><span class="annot"><a href="GHC.Types.Unique.FM.html#intersectUFM_C"><span class="hs-identifier hs-type">intersectUFM_C</span></a></span><span>
</span><span id="line-289"></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795766"><span class="hs-identifier hs-type">elt1</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795765"><span class="hs-identifier hs-type">elt2</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795764"><span class="hs-identifier hs-type">elt3</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-290"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795763"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795766"><span class="hs-identifier hs-type">elt1</span></a></span><span>
</span><span id="line-291"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795763"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795765"><span class="hs-identifier hs-type">elt2</span></a></span><span>
</span><span id="line-292"></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795763"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795764"><span class="hs-identifier hs-type">elt3</span></a></span></span></span></span></span><span>
</span><span id="line-293"></span><span id="intersectUFM_C"><span class="annot"><span class="annottext">intersectUFM_C :: forall elt1 elt2 elt3 key.
(elt1 -&gt; elt2 -&gt; elt3)
-&gt; UniqFM key elt1 -&gt; UniqFM key elt2 -&gt; UniqFM key elt3
</span><a href="GHC.Types.Unique.FM.html#intersectUFM_C"><span class="hs-identifier hs-var hs-var">intersectUFM_C</span></a></span></span><span> </span><span id="local-6989586621680795162"><span class="annot"><span class="annottext">elt1 -&gt; elt2 -&gt; elt3
</span><a href="#local-6989586621680795162"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795161"><span class="annot"><span class="annottext">IntMap elt1
</span><a href="#local-6989586621680795161"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795160"><span class="annot"><span class="annottext">IntMap elt2
</span><a href="#local-6989586621680795160"><span class="hs-identifier hs-var">y</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt3 -&gt; UniqFM key elt3
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(elt1 -&gt; elt2 -&gt; elt3) -&gt; IntMap elt1 -&gt; IntMap elt2 -&gt; IntMap elt3
forall a b c. (a -&gt; b -&gt; c) -&gt; IntMap a -&gt; IntMap b -&gt; IntMap c
</span><a href="../../containers/src/Data.IntMap.Internal.html#intersectionWith"><span class="hs-identifier hs-var">M.intersectionWith</span></a></span><span> </span><span class="annot"><span class="annottext">elt1 -&gt; elt2 -&gt; elt3
</span><a href="#local-6989586621680795162"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt1
</span><a href="#local-6989586621680795161"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt2
</span><a href="#local-6989586621680795160"><span class="hs-identifier hs-var">y</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-294"></span><span>
</span><span id="line-295"></span><span id="local-6989586621680795753"><span id="local-6989586621680795754"><span id="local-6989586621680795755"><span class="annot"><a href="GHC.Types.Unique.FM.html#disjointUFM"><span class="hs-identifier hs-type">disjointUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795755"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795754"><span class="hs-identifier hs-type">elt1</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795755"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795753"><span class="hs-identifier hs-type">elt2</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span></span></span></span><span>
</span><span id="line-296"></span><span id="disjointUFM"><span class="annot"><span class="annottext">disjointUFM :: forall key elt1 elt2. UniqFM key elt1 -&gt; UniqFM key elt2 -&gt; Bool
</span><a href="GHC.Types.Unique.FM.html#disjointUFM"><span class="hs-identifier hs-var hs-var">disjointUFM</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795158"><span class="annot"><span class="annottext">IntMap elt1
</span><a href="#local-6989586621680795158"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795157"><span class="annot"><span class="annottext">IntMap elt2
</span><a href="#local-6989586621680795157"><span class="hs-identifier hs-var">y</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt1 -&gt; IntMap elt2 -&gt; Bool
forall a b. IntMap a -&gt; IntMap b -&gt; Bool
</span><a href="../../containers/src/Data.IntMap.Internal.html#disjoint"><span class="hs-identifier hs-var">M.disjoint</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt1
</span><a href="#local-6989586621680795158"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt2
</span><a href="#local-6989586621680795157"><span class="hs-identifier hs-var">y</span></a></span><span>
</span><span id="line-297"></span><span>
</span><span id="line-298"></span><span id="local-6989586621680795745"><span id="local-6989586621680795746"><span id="local-6989586621680795747"><span class="annot"><a href="GHC.Types.Unique.FM.html#foldUFM"><span class="hs-identifier hs-type">foldUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795747"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795746"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795746"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795746"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795745"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795747"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795746"><span class="hs-identifier hs-type">a</span></a></span></span></span></span><span>
</span><span id="line-299"></span><span id="foldUFM"><span class="annot"><span class="annottext">foldUFM :: forall elt a key. (elt -&gt; a -&gt; a) -&gt; a -&gt; UniqFM key elt -&gt; a
</span><a href="GHC.Types.Unique.FM.html#foldUFM"><span class="hs-identifier hs-var hs-var">foldUFM</span></a></span></span><span> </span><span id="local-6989586621680795155"><span class="annot"><span class="annottext">elt -&gt; a -&gt; a
</span><a href="#local-6989586621680795155"><span class="hs-identifier hs-var">k</span></a></span></span><span> </span><span id="local-6989586621680795154"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680795154"><span class="hs-identifier hs-var">z</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795153"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795153"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(elt -&gt; a -&gt; a) -&gt; a -&gt; IntMap elt -&gt; a
forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; IntMap a -&gt; b
</span><a href="../../containers/src/Data.IntMap.Internal.html#foldr"><span class="hs-identifier hs-var">M.foldr</span></a></span><span> </span><span class="annot"><span class="annottext">elt -&gt; a -&gt; a
</span><a href="#local-6989586621680795155"><span class="hs-identifier hs-var">k</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680795154"><span class="hs-identifier hs-var">z</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795153"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-300"></span><span>
</span><span id="line-301"></span><span id="local-6989586621680795737"><span id="local-6989586621680795738"><span id="local-6989586621680795739"><span class="annot"><a href="GHC.Types.Unique.FM.html#mapUFM"><span class="hs-identifier hs-type">mapUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795739"><span class="hs-identifier hs-type">elt1</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795738"><span class="hs-identifier hs-type">elt2</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795737"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795739"><span class="hs-identifier hs-type">elt1</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795737"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795738"><span class="hs-identifier hs-type">elt2</span></a></span></span></span></span><span>
</span><span id="line-302"></span><span id="mapUFM"><span class="annot"><span class="annottext">mapUFM :: forall elt1 elt2 key.
(elt1 -&gt; elt2) -&gt; UniqFM key elt1 -&gt; UniqFM key elt2
</span><a href="GHC.Types.Unique.FM.html#mapUFM"><span class="hs-identifier hs-var hs-var">mapUFM</span></a></span></span><span> </span><span id="local-6989586621680795151"><span class="annot"><span class="annottext">elt1 -&gt; elt2
</span><a href="#local-6989586621680795151"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795150"><span class="annot"><span class="annottext">IntMap elt1
</span><a href="#local-6989586621680795150"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt2 -&gt; UniqFM key elt2
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(elt1 -&gt; elt2) -&gt; IntMap elt1 -&gt; IntMap elt2
forall a b. (a -&gt; b) -&gt; IntMap a -&gt; IntMap b
</span><a href="../../containers/src/Data.IntMap.Internal.html#map"><span class="hs-identifier hs-var">M.map</span></a></span><span> </span><span class="annot"><span class="annottext">elt1 -&gt; elt2
</span><a href="#local-6989586621680795151"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt1
</span><a href="#local-6989586621680795150"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-303"></span><span>
</span><span id="line-304"></span><span id="local-6989586621680795731"><span id="local-6989586621680795732"><span id="local-6989586621680795733"><span class="annot"><a href="GHC.Types.Unique.FM.html#mapMaybeUFM"><span class="hs-identifier hs-type">mapMaybeUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795733"><span class="hs-identifier hs-type">elt1</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795732"><span class="hs-identifier hs-type">elt2</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795731"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795733"><span class="hs-identifier hs-type">elt1</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795731"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795732"><span class="hs-identifier hs-type">elt2</span></a></span></span></span></span><span>
</span><span id="line-305"></span><span id="mapMaybeUFM"><span class="annot"><span class="annottext">mapMaybeUFM :: forall elt1 elt2 key.
(elt1 -&gt; Maybe elt2) -&gt; UniqFM key elt1 -&gt; UniqFM key elt2
</span><a href="GHC.Types.Unique.FM.html#mapMaybeUFM"><span class="hs-identifier hs-var hs-var">mapMaybeUFM</span></a></span></span><span> </span><span id="local-6989586621680795149"><span class="annot"><span class="annottext">elt1 -&gt; Maybe elt2
</span><a href="#local-6989586621680795149"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795148"><span class="annot"><span class="annottext">IntMap elt1
</span><a href="#local-6989586621680795148"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt2 -&gt; UniqFM key elt2
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(elt1 -&gt; Maybe elt2) -&gt; IntMap elt1 -&gt; IntMap elt2
forall a b. (a -&gt; Maybe b) -&gt; IntMap a -&gt; IntMap b
</span><a href="../../containers/src/Data.IntMap.Internal.html#mapMaybe"><span class="hs-identifier hs-var">M.mapMaybe</span></a></span><span> </span><span class="annot"><span class="annottext">elt1 -&gt; Maybe elt2
</span><a href="#local-6989586621680795149"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt1
</span><a href="#local-6989586621680795148"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-306"></span><span>
</span><span id="line-307"></span><span id="local-6989586621680795723"><span id="local-6989586621680795724"><span id="local-6989586621680795725"><span class="annot"><a href="GHC.Types.Unique.FM.html#mapUFM_Directly"><span class="hs-identifier hs-type">mapUFM_Directly</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795725"><span class="hs-identifier hs-type">elt1</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795724"><span class="hs-identifier hs-type">elt2</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795723"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795725"><span class="hs-identifier hs-type">elt1</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795723"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795724"><span class="hs-identifier hs-type">elt2</span></a></span></span></span></span><span>
</span><span id="line-308"></span><span id="mapUFM_Directly"><span class="annot"><span class="annottext">mapUFM_Directly :: forall elt1 elt2 key.
(Unique -&gt; elt1 -&gt; elt2) -&gt; UniqFM key elt1 -&gt; UniqFM key elt2
</span><a href="GHC.Types.Unique.FM.html#mapUFM_Directly"><span class="hs-identifier hs-var hs-var">mapUFM_Directly</span></a></span></span><span> </span><span id="local-6989586621680795144"><span class="annot"><span class="annottext">Unique -&gt; elt1 -&gt; elt2
</span><a href="#local-6989586621680795144"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795143"><span class="annot"><span class="annottext">IntMap elt1
</span><a href="#local-6989586621680795143"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt2 -&gt; UniqFM key elt2
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Int -&gt; elt1 -&gt; elt2) -&gt; IntMap elt1 -&gt; IntMap elt2
forall a b. (Int -&gt; a -&gt; b) -&gt; IntMap a -&gt; IntMap b
</span><a href="../../containers/src/Data.IntMap.Internal.html#mapWithKey"><span class="hs-identifier hs-var">M.mapWithKey</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unique -&gt; elt1 -&gt; elt2
</span><a href="#local-6989586621680795144"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">(Unique -&gt; elt1 -&gt; elt2) -&gt; (Int -&gt; Unique) -&gt; Int -&gt; elt1 -&gt; elt2
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">IntMap elt1
</span><a href="#local-6989586621680795143"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-309"></span><span>
</span><span id="line-310"></span><span id="local-6989586621680795713"><span id="local-6989586621680795714"><span class="annot"><a href="GHC.Types.Unique.FM.html#filterUFM"><span class="hs-identifier hs-type">filterUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795714"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795713"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795714"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795713"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795714"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-311"></span><span id="filterUFM"><span class="annot"><span class="annottext">filterUFM :: forall elt key. (elt -&gt; Bool) -&gt; UniqFM key elt -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#filterUFM"><span class="hs-identifier hs-var hs-var">filterUFM</span></a></span></span><span> </span><span id="local-6989586621680795140"><span class="annot"><span class="annottext">elt -&gt; Bool
</span><a href="#local-6989586621680795140"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795139"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795139"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; UniqFM key elt
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(elt -&gt; Bool) -&gt; IntMap elt -&gt; IntMap elt
forall a. (a -&gt; Bool) -&gt; IntMap a -&gt; IntMap a
</span><a href="../../containers/src/Data.IntMap.Internal.html#filter"><span class="hs-identifier hs-var">M.filter</span></a></span><span> </span><span class="annot"><span class="annottext">elt -&gt; Bool
</span><a href="#local-6989586621680795140"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795139"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-312"></span><span>
</span><span id="line-313"></span><span id="local-6989586621680795708"><span id="local-6989586621680795709"><span class="annot"><a href="GHC.Types.Unique.FM.html#filterUFM_Directly"><span class="hs-identifier hs-type">filterUFM_Directly</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795709"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795708"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795709"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795708"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795709"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-314"></span><span id="filterUFM_Directly"><span class="annot"><span class="annottext">filterUFM_Directly :: forall elt key.
(Unique -&gt; elt -&gt; Bool) -&gt; UniqFM key elt -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#filterUFM_Directly"><span class="hs-identifier hs-var hs-var">filterUFM_Directly</span></a></span></span><span> </span><span id="local-6989586621680795136"><span class="annot"><span class="annottext">Unique -&gt; elt -&gt; Bool
</span><a href="#local-6989586621680795136"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795135"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795135"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; UniqFM key elt
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Int -&gt; elt -&gt; Bool) -&gt; IntMap elt -&gt; IntMap elt
forall a. (Int -&gt; a -&gt; Bool) -&gt; IntMap a -&gt; IntMap a
</span><a href="../../containers/src/Data.IntMap.Internal.html#filterWithKey"><span class="hs-identifier hs-var">M.filterWithKey</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unique -&gt; elt -&gt; Bool
</span><a href="#local-6989586621680795136"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">(Unique -&gt; elt -&gt; Bool) -&gt; (Int -&gt; Unique) -&gt; Int -&gt; elt -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795135"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-315"></span><span>
</span><span id="line-316"></span><span id="local-6989586621680795703"><span id="local-6989586621680795704"><span class="annot"><a href="GHC.Types.Unique.FM.html#partitionUFM"><span class="hs-identifier hs-type">partitionUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795704"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795703"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795704"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795703"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795704"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795703"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795704"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">)</span></span></span><span>
</span><span id="line-317"></span><span id="partitionUFM"><span class="annot"><span class="annottext">partitionUFM :: forall elt key.
(elt -&gt; Bool) -&gt; UniqFM key elt -&gt; (UniqFM key elt, UniqFM key elt)
</span><a href="GHC.Types.Unique.FM.html#partitionUFM"><span class="hs-identifier hs-var hs-var">partitionUFM</span></a></span></span><span> </span><span id="local-6989586621680795133"><span class="annot"><span class="annottext">elt -&gt; Bool
</span><a href="#local-6989586621680795133"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795132"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795132"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-318"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">(elt -&gt; Bool) -&gt; IntMap elt -&gt; (IntMap elt, IntMap elt)
forall a. (a -&gt; Bool) -&gt; IntMap a -&gt; (IntMap a, IntMap a)
</span><a href="../../containers/src/Data.IntMap.Internal.html#partition"><span class="hs-identifier hs-var">M.partition</span></a></span><span> </span><span class="annot"><span class="annottext">elt -&gt; Bool
</span><a href="#local-6989586621680795133"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795132"><span class="hs-identifier hs-var">m</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-319"></span><span>    </span><span class="hs-special">(</span><span id="local-6989586621680795130"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795130"><span class="hs-identifier hs-var">left</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680795129"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795129"><span class="hs-identifier hs-var">right</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IntMap elt -&gt; UniqFM key elt
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795130"><span class="hs-identifier hs-var">left</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; UniqFM key elt
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795129"><span class="hs-identifier hs-var">right</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-320"></span><span>
</span><span id="line-321"></span><span id="local-6989586621680795698"><span id="local-6989586621680795699"><span class="annot"><a href="GHC.Types.Unique.FM.html#sizeUFM"><span class="hs-identifier hs-type">sizeUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795699"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795698"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span></span></span><span>
</span><span id="line-322"></span><span id="sizeUFM"><span class="annot"><span class="annottext">sizeUFM :: forall key elt. UniqFM key elt -&gt; Int
</span><a href="GHC.Types.Unique.FM.html#sizeUFM"><span class="hs-identifier hs-var hs-var">sizeUFM</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795128"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795128"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; Int
forall a. IntMap a -&gt; Int
</span><a href="../../containers/src/Data.IntMap.Internal.html#size"><span class="hs-identifier hs-var">M.size</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795128"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-323"></span><span>
</span><span id="line-324"></span><span id="local-6989586621680795693"><span id="local-6989586621680795694"><span class="annot"><a href="GHC.Types.Unique.FM.html#elemUFM"><span class="hs-identifier hs-type">elemUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795694"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795694"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795694"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795693"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span></span></span><span>
</span><span id="line-325"></span><span id="elemUFM"><span class="annot"><span class="annottext">elemUFM :: forall key elt. Uniquable key =&gt; key -&gt; UniqFM key elt -&gt; Bool
</span><a href="GHC.Types.Unique.FM.html#elemUFM"><span class="hs-identifier hs-var hs-var">elemUFM</span></a></span></span><span> </span><span id="local-6989586621680795124"><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795124"><span class="hs-identifier hs-var">k</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795123"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795123"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; IntMap elt -&gt; Bool
forall a. Int -&gt; IntMap a -&gt; Bool
</span><a href="../../containers/src/Data.IntMap.Internal.html#member"><span class="hs-identifier hs-var">M.member</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unique -&gt; Int
</span><a href="GHC.Types.Unique.html#getKey"><span class="hs-identifier hs-var">getKey</span></a></span><span> </span><span class="annot"><span class="annottext">(Unique -&gt; Int) -&gt; Unique -&gt; Int
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">key -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795124"><span class="hs-identifier hs-var">k</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795123"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-326"></span><span>
</span><span id="line-327"></span><span id="local-6989586621680795688"><span id="local-6989586621680795689"><span class="annot"><a href="GHC.Types.Unique.FM.html#elemUFM_Directly"><span class="hs-identifier hs-type">elemUFM_Directly</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795689"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795688"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span></span></span><span>
</span><span id="line-328"></span><span id="elemUFM_Directly"><span class="annot"><span class="annottext">elemUFM_Directly :: forall key elt. Unique -&gt; UniqFM key elt -&gt; Bool
</span><a href="GHC.Types.Unique.FM.html#elemUFM_Directly"><span class="hs-identifier hs-var hs-var">elemUFM_Directly</span></a></span></span><span> </span><span id="local-6989586621680795121"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621680795121"><span class="hs-identifier hs-var">u</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795120"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795120"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; IntMap elt -&gt; Bool
forall a. Int -&gt; IntMap a -&gt; Bool
</span><a href="../../containers/src/Data.IntMap.Internal.html#member"><span class="hs-identifier hs-var">M.member</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unique -&gt; Int
</span><a href="GHC.Types.Unique.html#getKey"><span class="hs-identifier hs-var">getKey</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621680795121"><span class="hs-identifier hs-var">u</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795120"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-329"></span><span>
</span><span id="line-330"></span><span id="local-6989586621680795684"><span id="local-6989586621680795685"><span class="annot"><a href="GHC.Types.Unique.FM.html#lookupUFM"><span class="hs-identifier hs-type">lookupUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795685"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795685"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795684"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795685"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795684"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-331"></span><span id="lookupUFM"><span class="annot"><span class="annottext">lookupUFM :: forall key elt. Uniquable key =&gt; UniqFM key elt -&gt; key -&gt; Maybe elt
</span><a href="GHC.Types.Unique.FM.html#lookupUFM"><span class="hs-identifier hs-var hs-var">lookupUFM</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795117"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795117"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621680795116"><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795116"><span class="hs-identifier hs-var">k</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; IntMap elt -&gt; Maybe elt
forall a. Int -&gt; IntMap a -&gt; Maybe a
</span><a href="../../containers/src/Data.IntMap.Internal.html#lookup"><span class="hs-identifier hs-var">M.lookup</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unique -&gt; Int
</span><a href="GHC.Types.Unique.html#getKey"><span class="hs-identifier hs-var">getKey</span></a></span><span> </span><span class="annot"><span class="annottext">(Unique -&gt; Int) -&gt; Unique -&gt; Int
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">key -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795116"><span class="hs-identifier hs-var">k</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795117"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-332"></span><span>
</span><span id="line-333"></span><span class="hs-comment">-- when you've got the Unique already</span><span>
</span><span id="line-334"></span><span id="local-6989586621680795679"><span id="local-6989586621680795680"><span class="annot"><a href="GHC.Types.Unique.FM.html#lookupUFM_Directly"><span class="hs-identifier hs-type">lookupUFM_Directly</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795680"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795679"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795679"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-335"></span><span id="lookupUFM_Directly"><span class="annot"><span class="annottext">lookupUFM_Directly :: forall key elt. UniqFM key elt -&gt; Unique -&gt; Maybe elt
</span><a href="GHC.Types.Unique.FM.html#lookupUFM_Directly"><span class="hs-identifier hs-var hs-var">lookupUFM_Directly</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795114"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795114"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621680795113"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621680795113"><span class="hs-identifier hs-var">u</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; IntMap elt -&gt; Maybe elt
forall a. Int -&gt; IntMap a -&gt; Maybe a
</span><a href="../../containers/src/Data.IntMap.Internal.html#lookup"><span class="hs-identifier hs-var">M.lookup</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unique -&gt; Int
</span><a href="GHC.Types.Unique.html#getKey"><span class="hs-identifier hs-var">getKey</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621680795113"><span class="hs-identifier hs-var">u</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795114"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-336"></span><span>
</span><span id="line-337"></span><span id="local-6989586621680795675"><span id="local-6989586621680795676"><span class="annot"><a href="GHC.Types.Unique.FM.html#lookupWithDefaultUFM"><span class="hs-identifier hs-type">lookupWithDefaultUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795676"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795676"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795675"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795675"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795676"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795675"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-338"></span><span id="lookupWithDefaultUFM"><span class="annot"><span class="annottext">lookupWithDefaultUFM :: forall key elt.
Uniquable key =&gt;
UniqFM key elt -&gt; elt -&gt; key -&gt; elt
</span><a href="GHC.Types.Unique.FM.html#lookupWithDefaultUFM"><span class="hs-identifier hs-var hs-var">lookupWithDefaultUFM</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795110"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795110"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621680795109"><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795109"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span id="local-6989586621680795108"><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795108"><span class="hs-identifier hs-var">k</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">elt -&gt; Int -&gt; IntMap elt -&gt; elt
forall a. a -&gt; Int -&gt; IntMap a -&gt; a
</span><a href="../../containers/src/Data.IntMap.Internal.html#findWithDefault"><span class="hs-identifier hs-var">M.findWithDefault</span></a></span><span> </span><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795109"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unique -&gt; Int
</span><a href="GHC.Types.Unique.html#getKey"><span class="hs-identifier hs-var">getKey</span></a></span><span> </span><span class="annot"><span class="annottext">(Unique -&gt; Int) -&gt; Unique -&gt; Int
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">key -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="annot"><span class="annottext">key
</span><a href="#local-6989586621680795108"><span class="hs-identifier hs-var">k</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795110"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-339"></span><span>
</span><span id="line-340"></span><span id="local-6989586621680795670"><span id="local-6989586621680795671"><span class="annot"><a href="GHC.Types.Unique.FM.html#lookupWithDefaultUFM_Directly"><span class="hs-identifier hs-type">lookupWithDefaultUFM_Directly</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795671"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795670"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795670"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795670"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-341"></span><span id="lookupWithDefaultUFM_Directly"><span class="annot"><span class="annottext">lookupWithDefaultUFM_Directly :: forall key elt. UniqFM key elt -&gt; elt -&gt; Unique -&gt; elt
</span><a href="GHC.Types.Unique.FM.html#lookupWithDefaultUFM_Directly"><span class="hs-identifier hs-var hs-var">lookupWithDefaultUFM_Directly</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795106"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795106"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621680795105"><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795105"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span id="local-6989586621680795104"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621680795104"><span class="hs-identifier hs-var">u</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">elt -&gt; Int -&gt; IntMap elt -&gt; elt
forall a. a -&gt; Int -&gt; IntMap a -&gt; a
</span><a href="../../containers/src/Data.IntMap.Internal.html#findWithDefault"><span class="hs-identifier hs-var">M.findWithDefault</span></a></span><span> </span><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795105"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unique -&gt; Int
</span><a href="GHC.Types.Unique.html#getKey"><span class="hs-identifier hs-var">getKey</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621680795104"><span class="hs-identifier hs-var">u</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795106"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-342"></span><span>
</span><span id="line-343"></span><span id="local-6989586621680795666"><span id="local-6989586621680795667"><span class="annot"><a href="GHC.Types.Unique.FM.html#eltsUFM"><span class="hs-identifier hs-type">eltsUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795667"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795666"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680795666"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">]</span></span></span><span>
</span><span id="line-344"></span><span id="eltsUFM"><span class="annot"><span class="annottext">eltsUFM :: forall key elt. UniqFM key elt -&gt; [elt]
</span><a href="GHC.Types.Unique.FM.html#eltsUFM"><span class="hs-identifier hs-var hs-var">eltsUFM</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795103"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795103"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; [elt]
forall a. IntMap a -&gt; [a]
</span><a href="../../containers/src/Data.IntMap.Internal.html#elems"><span class="hs-identifier hs-var">M.elems</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795103"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-345"></span><span>
</span><span id="line-346"></span><span id="local-6989586621680795661"><span id="local-6989586621680795662"><span class="annot"><a href="GHC.Types.Unique.FM.html#ufmToSet_Directly"><span class="hs-identifier hs-type">ufmToSet_Directly</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795662"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795661"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../containers/src/Data.IntSet.Internal.html#IntSet"><span class="hs-identifier hs-type">S.IntSet</span></a></span></span></span><span>
</span><span id="line-347"></span><span id="ufmToSet_Directly"><span class="annot"><span class="annottext">ufmToSet_Directly :: forall key elt. UniqFM key elt -&gt; IntSet
</span><a href="GHC.Types.Unique.FM.html#ufmToSet_Directly"><span class="hs-identifier hs-var hs-var">ufmToSet_Directly</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795101"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795101"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; IntSet
forall a. IntMap a -&gt; IntSet
</span><a href="../../containers/src/Data.IntMap.Internal.html#keysSet"><span class="hs-identifier hs-var">M.keysSet</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795101"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-348"></span><span>
</span><span id="line-349"></span><span id="local-6989586621680795655"><span id="local-6989586621680795656"><span class="annot"><a href="GHC.Types.Unique.FM.html#anyUFM"><span class="hs-identifier hs-type">anyUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795656"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795655"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795656"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span></span></span><span>
</span><span id="line-350"></span><span id="anyUFM"><span class="annot"><span class="annottext">anyUFM :: forall elt key. (elt -&gt; Bool) -&gt; UniqFM key elt -&gt; Bool
</span><a href="GHC.Types.Unique.FM.html#anyUFM"><span class="hs-identifier hs-var hs-var">anyUFM</span></a></span></span><span> </span><span id="local-6989586621680795099"><span class="annot"><span class="annottext">elt -&gt; Bool
</span><a href="#local-6989586621680795099"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795098"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795098"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(elt -&gt; Bool -&gt; Bool) -&gt; Bool -&gt; IntMap elt -&gt; Bool
forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; IntMap a -&gt; b
</span><a href="../../containers/src/Data.IntMap.Internal.html#foldr"><span class="hs-identifier hs-var">M.foldr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">(||)</span></span><span> </span><span class="annot"><span class="annottext">(Bool -&gt; Bool -&gt; Bool) -&gt; (elt -&gt; Bool) -&gt; elt -&gt; Bool -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">elt -&gt; Bool
</span><a href="#local-6989586621680795099"><span class="hs-identifier hs-var">p</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795098"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-351"></span><span>
</span><span id="line-352"></span><span id="local-6989586621680795095"><span id="local-6989586621680795096"><span class="annot"><a href="GHC.Types.Unique.FM.html#allUFM"><span class="hs-identifier hs-type">allUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795096"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795095"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795096"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span></span></span><span>
</span><span id="line-353"></span><span id="allUFM"><span class="annot"><span class="annottext">allUFM :: forall elt key. (elt -&gt; Bool) -&gt; UniqFM key elt -&gt; Bool
</span><a href="GHC.Types.Unique.FM.html#allUFM"><span class="hs-identifier hs-var hs-var">allUFM</span></a></span></span><span> </span><span id="local-6989586621680795094"><span class="annot"><span class="annottext">elt -&gt; Bool
</span><a href="#local-6989586621680795094"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795093"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795093"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(elt -&gt; Bool -&gt; Bool) -&gt; Bool -&gt; IntMap elt -&gt; Bool
forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; IntMap a -&gt; b
</span><a href="../../containers/src/Data.IntMap.Internal.html#foldr"><span class="hs-identifier hs-var">M.foldr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">(&amp;&amp;)</span></span><span> </span><span class="annot"><span class="annottext">(Bool -&gt; Bool -&gt; Bool) -&gt; (elt -&gt; Bool) -&gt; elt -&gt; Bool -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">elt -&gt; Bool
</span><a href="#local-6989586621680795094"><span class="hs-identifier hs-var">p</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795093"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-354"></span><span>
</span><span id="line-355"></span><span id="local-6989586621680795649"><span id="local-6989586621680795650"><span class="annot"><a href="GHC.Types.Unique.FM.html#seqEltsUFM"><span class="hs-identifier hs-type">seqEltsUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680795650"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795649"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795650"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span></span></span><span>
</span><span id="line-356"></span><span id="seqEltsUFM"><span class="annot"><span class="annottext">seqEltsUFM :: forall elt key. ([elt] -&gt; ()) -&gt; UniqFM key elt -&gt; ()
</span><a href="GHC.Types.Unique.FM.html#seqEltsUFM"><span class="hs-identifier hs-var hs-var">seqEltsUFM</span></a></span></span><span> </span><span id="local-6989586621680795091"><span class="annot"><span class="annottext">[elt] -&gt; ()
</span><a href="#local-6989586621680795091"><span class="hs-identifier hs-var">seqList</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[elt] -&gt; ()
</span><a href="#local-6989586621680795091"><span class="hs-identifier hs-var">seqList</span></a></span><span> </span><span class="annot"><span class="annottext">([elt] -&gt; ()) -&gt; (UniqFM key elt -&gt; [elt]) -&gt; UniqFM key elt -&gt; ()
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">UniqFM key elt -&gt; [elt]
forall key elt. UniqFM key elt -&gt; [elt]
</span><a href="GHC.Types.Unique.FM.html#nonDetEltsUFM"><span class="hs-identifier hs-var">nonDetEltsUFM</span></a></span><span>
</span><span id="line-357"></span><span>  </span><span class="hs-comment">-- It's OK to use nonDetEltsUFM here because the type guarantees that</span><span>
</span><span id="line-358"></span><span>  </span><span class="hs-comment">-- the only interesting thing this function can do is to force the</span><span>
</span><span id="line-359"></span><span>  </span><span class="hs-comment">-- elements.</span><span>
</span><span id="line-360"></span><span>
</span><span id="line-361"></span><span class="hs-comment">-- See Note [Deterministic UniqFM] to learn about nondeterminism.</span><span>
</span><span id="line-362"></span><span class="hs-comment">-- If you use this please provide a justification why it doesn't introduce</span><span>
</span><span id="line-363"></span><span class="hs-comment">-- nondeterminism.</span><span>
</span><span id="line-364"></span><span id="local-6989586621680795089"><span id="local-6989586621680795090"><span class="annot"><a href="GHC.Types.Unique.FM.html#nonDetEltsUFM"><span class="hs-identifier hs-type">nonDetEltsUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795090"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795089"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680795089"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">]</span></span></span><span>
</span><span id="line-365"></span><span id="nonDetEltsUFM"><span class="annot"><span class="annottext">nonDetEltsUFM :: forall key elt. UniqFM key elt -&gt; [elt]
</span><a href="GHC.Types.Unique.FM.html#nonDetEltsUFM"><span class="hs-identifier hs-var hs-var">nonDetEltsUFM</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795088"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795088"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; [elt]
forall a. IntMap a -&gt; [a]
</span><a href="../../containers/src/Data.IntMap.Internal.html#elems"><span class="hs-identifier hs-var">M.elems</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795088"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-366"></span><span>
</span><span id="line-367"></span><span class="hs-comment">-- See Note [Deterministic UniqFM] to learn about nondeterminism.</span><span>
</span><span id="line-368"></span><span class="hs-comment">-- If you use this please provide a justification why it doesn't introduce</span><span>
</span><span id="line-369"></span><span class="hs-comment">-- nondeterminism.</span><span>
</span><span id="line-370"></span><span id="local-6989586621680795643"><span id="local-6989586621680795644"><span class="annot"><a href="GHC.Types.Unique.FM.html#nonDetKeysUFM"><span class="hs-identifier hs-type">nonDetKeysUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795644"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795643"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span class="hs-special">]</span></span></span><span>
</span><span id="line-371"></span><span id="nonDetKeysUFM"><span class="annot"><span class="annottext">nonDetKeysUFM :: forall key elt. UniqFM key elt -&gt; [Unique]
</span><a href="GHC.Types.Unique.FM.html#nonDetKeysUFM"><span class="hs-identifier hs-var hs-var">nonDetKeysUFM</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795086"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795086"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Int -&gt; Unique) -&gt; [Int] -&gt; [Unique]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="annot"><span class="annottext">([Int] -&gt; [Unique]) -&gt; [Int] -&gt; [Unique]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; [Int]
forall a. IntMap a -&gt; [Int]
</span><a href="../../containers/src/Data.IntMap.Internal.html#keys"><span class="hs-identifier hs-var">M.keys</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795086"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-372"></span><span>
</span><span id="line-373"></span><span class="hs-comment">-- See Note [Deterministic UniqFM] to learn about nondeterminism.</span><span>
</span><span id="line-374"></span><span class="hs-comment">-- If you use this please provide a justification why it doesn't introduce</span><span>
</span><span id="line-375"></span><span class="hs-comment">-- nondeterminism.</span><span>
</span><span id="line-376"></span><span id="local-6989586621680795082"><span id="local-6989586621680795083"><span id="local-6989586621680795084"><span class="annot"><a href="GHC.Types.Unique.FM.html#nonDetStrictFoldUFM"><span class="hs-identifier hs-type">nonDetStrictFoldUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795084"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795083"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795083"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795083"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795082"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795084"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795083"><span class="hs-identifier hs-type">a</span></a></span></span></span></span><span>
</span><span id="line-377"></span><span id="nonDetStrictFoldUFM"><span class="annot"><span class="annottext">nonDetStrictFoldUFM :: forall elt a key. (elt -&gt; a -&gt; a) -&gt; a -&gt; UniqFM key elt -&gt; a
</span><a href="GHC.Types.Unique.FM.html#nonDetStrictFoldUFM"><span class="hs-identifier hs-var hs-var">nonDetStrictFoldUFM</span></a></span></span><span> </span><span id="local-6989586621680795081"><span class="annot"><span class="annottext">elt -&gt; a -&gt; a
</span><a href="#local-6989586621680795081"><span class="hs-identifier hs-var">k</span></a></span></span><span> </span><span id="local-6989586621680795080"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680795080"><span class="hs-identifier hs-var">z</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795079"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795079"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(a -&gt; elt -&gt; a) -&gt; a -&gt; IntMap elt -&gt; a
forall a b. (a -&gt; b -&gt; a) -&gt; a -&gt; IntMap b -&gt; a
</span><a href="../../containers/src/Data.IntMap.Internal.html#foldl%27"><span class="hs-identifier hs-var">M.foldl'</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(elt -&gt; a -&gt; a) -&gt; a -&gt; elt -&gt; a
forall a b c. (a -&gt; b -&gt; c) -&gt; b -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#flip"><span class="hs-identifier hs-var">flip</span></a></span><span> </span><span class="annot"><span class="annottext">elt -&gt; a -&gt; a
</span><a href="#local-6989586621680795081"><span class="hs-identifier hs-var">k</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680795080"><span class="hs-identifier hs-var">z</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795079"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-378"></span><span>
</span><span id="line-379"></span><span class="hs-comment">-- See Note [Deterministic UniqFM] to learn about nondeterminism.</span><span>
</span><span id="line-380"></span><span class="hs-comment">-- If you use this please provide a justification why it doesn't introduce</span><span>
</span><span id="line-381"></span><span class="hs-comment">-- nondeterminism.</span><span>
</span><span id="line-382"></span><span id="local-6989586621680795630"><span id="local-6989586621680795631"><span id="local-6989586621680795632"><span class="annot"><a href="GHC.Types.Unique.FM.html#nonDetStrictFoldUFM_Directly"><span class="hs-identifier hs-type">nonDetStrictFoldUFM_Directly</span></a></span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795632"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795631"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795631"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795631"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795630"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795632"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680795631"><span class="hs-identifier hs-type">a</span></a></span></span></span></span><span>
</span><span id="line-383"></span><span id="nonDetStrictFoldUFM_Directly"><span class="annot"><span class="annottext">nonDetStrictFoldUFM_Directly :: forall elt a key.
(Unique -&gt; elt -&gt; a -&gt; a) -&gt; a -&gt; UniqFM key elt -&gt; a
</span><a href="GHC.Types.Unique.FM.html#nonDetStrictFoldUFM_Directly"><span class="hs-identifier hs-var hs-var">nonDetStrictFoldUFM_Directly</span></a></span></span><span> </span><span id="local-6989586621680795076"><span class="annot"><span class="annottext">Unique -&gt; elt -&gt; a -&gt; a
</span><a href="#local-6989586621680795076"><span class="hs-identifier hs-var">k</span></a></span></span><span> </span><span id="local-6989586621680795075"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680795075"><span class="hs-identifier hs-var">z</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795074"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795074"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(a -&gt; Int -&gt; elt -&gt; a) -&gt; a -&gt; IntMap elt -&gt; a
forall a b. (a -&gt; Int -&gt; b -&gt; a) -&gt; a -&gt; IntMap b -&gt; a
</span><a href="../../containers/src/Data.IntMap.Internal.html#foldlWithKey%27"><span class="hs-identifier hs-var">M.foldlWithKey'</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621680795072"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680795072"><span class="hs-identifier hs-var">z'</span></a></span></span><span> </span><span id="local-6989586621680795071"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680795071"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span id="local-6989586621680795070"><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795070"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Unique -&gt; elt -&gt; a -&gt; a
</span><a href="#local-6989586621680795076"><span class="hs-identifier hs-var">k</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680795071"><span class="hs-identifier hs-var">i</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795070"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680795072"><span class="hs-identifier hs-var">z'</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680795075"><span class="hs-identifier hs-var">z</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795074"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-384"></span><span>
</span><span id="line-385"></span><span class="hs-comment">-- See Note [Deterministic UniqFM] to learn about nondeterminism.</span><span>
</span><span id="line-386"></span><span class="hs-comment">-- If you use this please provide a justification why it doesn't introduce</span><span>
</span><span id="line-387"></span><span class="hs-comment">-- nondeterminism.</span><span>
</span><span id="line-388"></span><span id="local-6989586621680795623"><span id="local-6989586621680795624"><span class="annot"><a href="GHC.Types.Unique.FM.html#nonDetUFMToList"><span class="hs-identifier hs-type">nonDetUFMToList</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795624"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795623"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680795623"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span></span></span><span>
</span><span id="line-389"></span><span id="nonDetUFMToList"><span class="annot"><span class="annottext">nonDetUFMToList :: forall key elt. UniqFM key elt -&gt; [(Unique, elt)]
</span><a href="GHC.Types.Unique.FM.html#nonDetUFMToList"><span class="hs-identifier hs-var hs-var">nonDetUFMToList</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795068"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795068"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">((Int, elt) -&gt; (Unique, elt)) -&gt; [(Int, elt)] -&gt; [(Unique, elt)]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span class="hs-special">(</span><span id="local-6989586621680795067"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680795067"><span class="hs-identifier hs-var">k</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680795066"><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795066"><span class="hs-identifier hs-var">v</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680795067"><span class="hs-identifier hs-var">k</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">elt
</span><a href="#local-6989586621680795066"><span class="hs-identifier hs-var">v</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">([(Int, elt)] -&gt; [(Unique, elt)])
-&gt; [(Int, elt)] -&gt; [(Unique, elt)]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; [(Int, elt)]
forall a. IntMap a -&gt; [(Int, a)]
</span><a href="../../containers/src/Data.IntMap.Internal.html#toList"><span class="hs-identifier hs-var">M.toList</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680795068"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-390"></span><span>
</span><span id="line-391"></span><span class="hs-comment">-- | A wrapper around 'UniqFM' with the sole purpose of informing call sites</span><span>
</span><span id="line-392"></span><span class="hs-comment">-- that the provided 'Foldable' and 'Traversable' instances are</span><span>
</span><span id="line-393"></span><span class="hs-comment">-- nondeterministic.</span><span>
</span><span id="line-394"></span><span class="hs-comment">-- If you use this please provide a justification why it doesn't introduce</span><span>
</span><span id="line-395"></span><span class="hs-comment">-- nondeterminism.</span><span>
</span><span id="line-396"></span><span class="hs-comment">-- See Note [Deterministic UniqFM] in &quot;GHC.Types.Unique.DFM&quot; to learn about determinism.</span><span>
</span><span id="line-397"></span><span class="hs-keyword">newtype</span><span> </span><span id="NonDetUniqFM"><span class="annot"><a href="GHC.Types.Unique.FM.html#NonDetUniqFM"><span class="hs-identifier hs-var">NonDetUniqFM</span></a></span></span><span> </span><span id="local-6989586621680795619"><span class="annot"><a href="#local-6989586621680795619"><span class="hs-identifier hs-type">key</span></a></span></span><span> </span><span id="local-6989586621680795618"><span class="annot"><a href="#local-6989586621680795618"><span class="hs-identifier hs-type">ele</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="NonDetUniqFM"><span class="annot"><a href="GHC.Types.Unique.FM.html#NonDetUniqFM"><span class="hs-identifier hs-var">NonDetUniqFM</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="getNonDet"><span class="annot"><span class="annottext">forall key ele. NonDetUniqFM key ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#getNonDet"><span class="hs-identifier hs-var hs-var">getNonDet</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795619"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795618"><span class="hs-identifier hs-type">ele</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-398"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680795057"><span id="local-6989586621680795061"><span class="annot"><span class="annottext">(forall a b. (a -&gt; b) -&gt; NonDetUniqFM key a -&gt; NonDetUniqFM key b)
-&gt; (forall a b. a -&gt; NonDetUniqFM key b -&gt; NonDetUniqFM key a)
-&gt; Functor (NonDetUniqFM key)
forall a b. a -&gt; NonDetUniqFM key b -&gt; NonDetUniqFM key a
forall a b. (a -&gt; b) -&gt; NonDetUniqFM key a -&gt; NonDetUniqFM key b
forall key a b. a -&gt; NonDetUniqFM key b -&gt; NonDetUniqFM key a
forall key a b.
(a -&gt; b) -&gt; NonDetUniqFM key a -&gt; NonDetUniqFM key b
forall (f :: * -&gt; *).
(forall a b. (a -&gt; b) -&gt; f a -&gt; f b)
-&gt; (forall a b. a -&gt; f b -&gt; f a) -&gt; Functor f
&lt;$ :: forall a b. a -&gt; NonDetUniqFM key b -&gt; NonDetUniqFM key a
$c&lt;$ :: forall key a b. a -&gt; NonDetUniqFM key b -&gt; NonDetUniqFM key a
fmap :: forall a b. (a -&gt; b) -&gt; NonDetUniqFM key a -&gt; NonDetUniqFM key b
$cfmap :: forall key a b.
(a -&gt; b) -&gt; NonDetUniqFM key a -&gt; NonDetUniqFM key b
</span><a href="../../base/src/GHC.Base.html#Functor"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Functor</span></a></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-399"></span><span>
</span><span id="line-400"></span><span class="hs-comment">-- | Inherently nondeterministic.</span><span>
</span><span id="line-401"></span><span class="hs-comment">-- If you use this please provide a justification why it doesn't introduce</span><span>
</span><span id="line-402"></span><span class="hs-comment">-- nondeterminism.</span><span>
</span><span id="line-403"></span><span class="hs-comment">-- See Note [Deterministic UniqFM] in &quot;GHC.Types.Unique.DFM&quot; to learn about determinism.</span><span>
</span><span id="line-404"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680795021"><span id="local-6989586621680795023"><span id="local-6989586621680795025"><span id="local-6989586621680795027"><span id="local-6989586621680795029"><span id="local-6989586621680795031"><span id="local-6989586621680795033"><span id="local-6989586621680795035"><span id="local-6989586621680795037"><span id="local-6989586621680795039"><span id="local-6989586621680795041"><span id="local-6989586621680795043"><span id="local-6989586621680795045"><span id="local-6989586621680795048"><span id="local-6989586621680795050"><span id="local-6989586621680795052"><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621680795596"><span class="annot"><a href="#local-6989586621680795596"><span class="hs-identifier hs-type">key</span></a></span></span><span class="hs-operator">.</span><span> </span><span class="annot"><a href="../../base/src/Data.Foldable.html#Foldable"><span class="hs-identifier hs-type">Foldable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#NonDetUniqFM"><span class="hs-identifier hs-type">NonDetUniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795596"><span class="hs-identifier hs-type">key</span></a></span><span class="hs-special">)</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-405"></span><span>  </span><span id="local-6989586621680795017"><span class="annot"><span class="annottext">foldr :: forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; NonDetUniqFM key a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldr"><span class="hs-identifier hs-var hs-var hs-var hs-var">foldr</span></a></span></span><span> </span><span id="local-6989586621680795015"><span class="annot"><span class="annottext">a -&gt; b -&gt; b
</span><a href="#local-6989586621680795015"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621680795014"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680795014"><span class="hs-identifier hs-var">z</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#NonDetUniqFM"><span class="hs-identifier hs-type">NonDetUniqFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680795013"><span class="annot"><span class="annottext">IntMap a
</span><a href="#local-6989586621680795013"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(a -&gt; b -&gt; b) -&gt; b -&gt; IntMap a -&gt; b
forall (t :: * -&gt; *) a b.
Foldable t =&gt;
(a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldr"><span class="hs-identifier hs-var">foldr</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; b -&gt; b
</span><a href="#local-6989586621680795015"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680795014"><span class="hs-identifier hs-var">z</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap a
</span><a href="#local-6989586621680795013"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-406"></span><span>
</span><span id="line-407"></span><span class="hs-comment">-- | Inherently nondeterministic.</span><span>
</span><span id="line-408"></span><span class="hs-comment">-- If you use this please provide a justification why it doesn't introduce</span><span>
</span><span id="line-409"></span><span class="hs-comment">-- nondeterminism.</span><span>
</span><span id="line-410"></span><span class="hs-comment">-- See Note [Deterministic UniqFM] in &quot;GHC.Types.Unique.DFM&quot; to learn about determinism.</span><span>
</span><span id="line-411"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680795002"><span id="local-6989586621680795004"><span id="local-6989586621680795006"><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621680795582"><span class="annot"><a href="#local-6989586621680795582"><span class="hs-identifier hs-type">key</span></a></span></span><span class="hs-operator">.</span><span> </span><span class="annot"><a href="../../base/src/Data.Traversable.html#Traversable"><span class="hs-identifier hs-type">Traversable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#NonDetUniqFM"><span class="hs-identifier hs-type">NonDetUniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795582"><span class="hs-identifier hs-type">key</span></a></span><span class="hs-special">)</span></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-412"></span><span>  </span><span id="local-6989586621680794993"><span class="annot"><span class="annottext">traverse :: forall (f :: * -&gt; *) a b.
Applicative f =&gt;
(a -&gt; f b) -&gt; NonDetUniqFM key a -&gt; f (NonDetUniqFM key b)
</span><a href="../../base/src/Data.Traversable.html#traverse"><span class="hs-identifier hs-var hs-var hs-var hs-var">traverse</span></a></span></span><span> </span><span id="local-6989586621680794991"><span class="annot"><span class="annottext">a -&gt; f b
</span><a href="#local-6989586621680794991"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#NonDetUniqFM"><span class="hs-identifier hs-type">NonDetUniqFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680794990"><span class="annot"><span class="annottext">IntMap a
</span><a href="#local-6989586621680794990"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqFM key b -&gt; NonDetUniqFM key b
forall key ele. UniqFM key ele -&gt; NonDetUniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#NonDetUniqFM"><span class="hs-identifier hs-var">NonDetUniqFM</span></a></span><span> </span><span class="annot"><span class="annottext">(UniqFM key b -&gt; NonDetUniqFM key b)
-&gt; (IntMap b -&gt; UniqFM key b) -&gt; IntMap b -&gt; NonDetUniqFM key b
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap b -&gt; UniqFM key b
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="annot"><span class="annottext">(IntMap b -&gt; NonDetUniqFM key b)
-&gt; f (IntMap b) -&gt; f (NonDetUniqFM key b)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; f b) -&gt; IntMap a -&gt; f (IntMap b)
forall (t :: * -&gt; *) (f :: * -&gt; *) a b.
(Traversable t, Applicative f) =&gt;
(a -&gt; f b) -&gt; t a -&gt; f (t b)
</span><a href="../../base/src/Data.Traversable.html#traverse"><span class="hs-identifier hs-var">traverse</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; f b
</span><a href="#local-6989586621680794991"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap a
</span><a href="#local-6989586621680794990"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-413"></span><span>
</span><span id="line-414"></span><span id="local-6989586621680795573"><span id="local-6989586621680795574"><span class="annot"><a href="GHC.Types.Unique.FM.html#ufmToIntMap"><span class="hs-identifier hs-type">ufmToIntMap</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795574"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795573"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../containers/src/Data.IntMap.Internal.html#IntMap"><span class="hs-identifier hs-type">M.IntMap</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795573"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-415"></span><span id="ufmToIntMap"><span class="annot"><span class="annottext">ufmToIntMap :: forall key elt. UniqFM key elt -&gt; IntMap elt
</span><a href="GHC.Types.Unique.FM.html#ufmToIntMap"><span class="hs-identifier hs-var hs-var">ufmToIntMap</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680794988"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680794988"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680794988"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-416"></span><span>
</span><span id="line-417"></span><span id="local-6989586621680795569"><span id="local-6989586621680795570"><span class="annot"><a href="GHC.Types.Unique.FM.html#unsafeIntMapToUFM"><span class="hs-identifier hs-type">unsafeIntMapToUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../containers/src/Data.IntMap.Internal.html#IntMap"><span class="hs-identifier hs-type">M.IntMap</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795570"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795569"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795570"><span class="hs-identifier hs-type">elt</span></a></span></span></span><span>
</span><span id="line-418"></span><span id="unsafeIntMapToUFM"><span class="annot"><span class="annottext">unsafeIntMapToUFM :: forall elt key. IntMap elt -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#unsafeIntMapToUFM"><span class="hs-identifier hs-var hs-var">unsafeIntMapToUFM</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; UniqFM key elt
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span>
</span><span id="line-419"></span><span>
</span><span id="line-420"></span><span class="hs-comment">-- | Cast the key domain of a UniqFM.</span><span>
</span><span id="line-421"></span><span class="hs-comment">--</span><span>
</span><span id="line-422"></span><span class="hs-comment">-- As long as the domains don't overlap in their uniques</span><span>
</span><span id="line-423"></span><span class="hs-comment">-- this is safe.</span><span>
</span><span id="line-424"></span><span id="local-6989586621680795564"><span id="local-6989586621680795565"><span id="local-6989586621680795566"><span class="annot"><a href="GHC.Types.Unique.FM.html#unsafeCastUFMKey"><span class="hs-identifier hs-type">unsafeCastUFMKey</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795566"><span class="hs-identifier hs-type">key1</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795565"><span class="hs-identifier hs-type">elt</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795564"><span class="hs-identifier hs-type">key2</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795565"><span class="hs-identifier hs-type">elt</span></a></span></span></span></span><span>
</span><span id="line-425"></span><span id="unsafeCastUFMKey"><span class="annot"><span class="annottext">unsafeCastUFMKey :: forall key1 elt key2. UniqFM key1 elt -&gt; UniqFM key2 elt
</span><a href="GHC.Types.Unique.FM.html#unsafeCastUFMKey"><span class="hs-identifier hs-var hs-var">unsafeCastUFMKey</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680794987"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680794987"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IntMap elt -&gt; UniqFM key2 elt
forall key ele. IntMap ele -&gt; UniqFM key ele
</span><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-var">UFM</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680794987"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-426"></span><span>
</span><span id="line-427"></span><span class="hs-comment">-- Determines whether two 'UniqFM's contain the same keys.</span><span>
</span><span id="line-428"></span><span id="local-6989586621680794984"><span id="local-6989586621680794985"><span id="local-6989586621680794986"><span class="annot"><a href="GHC.Types.Unique.FM.html#equalKeysUFM"><span class="hs-identifier hs-type">equalKeysUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680794986"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680794985"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680794986"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680794984"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span></span></span></span><span>
</span><span id="line-429"></span><span id="equalKeysUFM"><span class="annot"><span class="annottext">equalKeysUFM :: forall key elt1 elt2. UniqFM key elt1 -&gt; UniqFM key elt2 -&gt; Bool
</span><a href="GHC.Types.Unique.FM.html#equalKeysUFM"><span class="hs-identifier hs-var hs-var">equalKeysUFM</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680794981"><span class="annot"><span class="annottext">IntMap a
</span><a href="#local-6989586621680794981"><span class="hs-identifier hs-var">m1</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UFM"><span class="hs-identifier hs-type">UFM</span></a></span><span> </span><span id="local-6989586621680794980"><span class="annot"><span class="annottext">IntMap b
</span><a href="#local-6989586621680794980"><span class="hs-identifier hs-var">m2</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(a -&gt; b -&gt; Bool) -&gt; IntMap a -&gt; IntMap b -&gt; Bool
forall (f :: * -&gt; *) a b.
Eq1 f =&gt;
(a -&gt; b -&gt; Bool) -&gt; f a -&gt; f b -&gt; Bool
</span><a href="../../base/src/Data.Functor.Classes.html#liftEq"><span class="hs-identifier hs-var">liftEq</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">b
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">IntMap a
</span><a href="#local-6989586621680794981"><span class="hs-identifier hs-var">m1</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap b
</span><a href="#local-6989586621680794980"><span class="hs-identifier hs-var">m2</span></a></span><span>
</span><span id="line-430"></span><span>
</span><span id="line-431"></span><span class="hs-comment">-- Instances</span><span>
</span><span id="line-432"></span><span>
</span><span id="line-433"></span><span id="local-6989586621680795549"><span id="local-6989586621680795550"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680794974"><span id="local-6989586621680794976"><span class="annot"><a href="../../base/src/GHC.Base.html#Semigroup"><span class="hs-identifier hs-type">Semi.Semigroup</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795550"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795549"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-434"></span><span>  </span><span id="local-6989586621680794972"><span class="annot"><span class="annottext">&lt;&gt; :: UniqFM key a -&gt; UniqFM key a -&gt; UniqFM key a
</span><a href="../../base/src/GHC.Base.html#%3C%3E"><span class="hs-operator hs-var hs-var hs-var hs-var">(&lt;&gt;)</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqFM key a -&gt; UniqFM key a -&gt; UniqFM key a
forall key elt. UniqFM key elt -&gt; UniqFM key elt -&gt; UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#plusUFM"><span class="hs-identifier hs-var">plusUFM</span></a></span></span></span><span>
</span><span id="line-435"></span><span>
</span><span id="line-436"></span><span id="local-6989586621680795546"><span id="local-6989586621680795547"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680794966"><span class="annot"><a href="../../base/src/GHC.Base.html#Monoid"><span class="hs-identifier hs-type">Monoid</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795547"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795546"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-437"></span><span>    </span><span id="local-6989586621680794964"><span class="annot"><span class="annottext">mempty :: UniqFM key a
</span><a href="../../base/src/GHC.Base.html#mempty"><span class="hs-identifier hs-var hs-var hs-var hs-var">mempty</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqFM key a
forall key elt. UniqFM key elt
</span><a href="GHC.Types.Unique.FM.html#emptyUFM"><span class="hs-identifier hs-var">emptyUFM</span></a></span><span>
</span><span id="line-438"></span><span>    </span><span id="local-6989586621680794962"><span class="annot"><span class="annottext">mappend :: UniqFM key a -&gt; UniqFM key a -&gt; UniqFM key a
</span><a href="../../base/src/GHC.Base.html#mappend"><span class="hs-identifier hs-var hs-var hs-var hs-var">mappend</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqFM key a -&gt; UniqFM key a -&gt; UniqFM key a
forall a. Semigroup a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Base.html#%3C%3E"><span class="hs-operator hs-var">(Semi.&lt;&gt;)</span></a></span></span></span><span>
</span><span id="line-439"></span><span>
</span><span id="line-440"></span><span class="hs-comment">-- Output-ery</span><span>
</span><span id="line-441"></span><span>
</span><span id="line-442"></span><span id="local-6989586621680795542"><span id="local-6989586621680795543"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680794959"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795543"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795542"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795543"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-443"></span><span>    </span><span id="local-6989586621680794956"><span class="annot"><span class="annottext">ppr :: UniqFM key a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680794954"><span class="annot"><span class="annottext">UniqFM key a
</span><a href="#local-6989586621680794954"><span class="hs-identifier hs-var">ufm</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; UniqFM key a -&gt; SDoc
forall a key. (a -&gt; SDoc) -&gt; UniqFM key a -&gt; SDoc
</span><a href="GHC.Types.Unique.FM.html#pprUniqFM"><span class="hs-identifier hs-var">pprUniqFM</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">UniqFM key a
</span><a href="#local-6989586621680794954"><span class="hs-identifier hs-var">ufm</span></a></span></span></span><span>
</span><span id="line-444"></span><span>
</span><span id="line-445"></span><span id="local-6989586621680795540"><span id="local-6989586621680795541"><span class="annot"><a href="GHC.Types.Unique.FM.html#pprUniqFM"><span class="hs-identifier hs-type">pprUniqFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680795541"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795540"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795541"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span></span><span>
</span><span id="line-446"></span><span id="pprUniqFM"><span class="annot"><span class="annottext">pprUniqFM :: forall a key. (a -&gt; SDoc) -&gt; UniqFM key a -&gt; SDoc
</span><a href="GHC.Types.Unique.FM.html#pprUniqFM"><span class="hs-identifier hs-var hs-var">pprUniqFM</span></a></span></span><span> </span><span id="local-6989586621680794951"><span class="annot"><span class="annottext">a -&gt; SDoc
</span><a href="#local-6989586621680794951"><span class="hs-identifier hs-var">ppr_elt</span></a></span></span><span> </span><span id="local-6989586621680794950"><span class="annot"><span class="annottext">UniqFM key a
</span><a href="#local-6989586621680794950"><span class="hs-identifier hs-var">ufm</span></a></span></span><span>
</span><span id="line-447"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#brackets"><span class="hs-identifier hs-var">brackets</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#fsep"><span class="hs-identifier hs-var">fsep</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc) -&gt; [SDoc] -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
</span><a href="GHC.Utils.Outputable.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; [SDoc]) -&gt; [SDoc] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-448"></span><span>    </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">Unique -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621680794945"><span class="hs-identifier hs-var">uq</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;:-&gt;&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
</span><a href="#local-6989586621680794951"><span class="hs-identifier hs-var">ppr_elt</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680794942"><span class="hs-identifier hs-var">elt</span></a></span><span>
</span><span id="line-449"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680794945"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621680794945"><span class="hs-identifier hs-var">uq</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680794942"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680794942"><span class="hs-identifier hs-var">elt</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">UniqFM key a -&gt; [(Unique, a)]
forall key elt. UniqFM key elt -&gt; [(Unique, elt)]
</span><a href="GHC.Types.Unique.FM.html#nonDetUFMToList"><span class="hs-identifier hs-var">nonDetUFMToList</span></a></span><span> </span><span class="annot"><span class="annottext">UniqFM key a
</span><a href="#local-6989586621680794950"><span class="hs-identifier hs-var">ufm</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-450"></span><span>  </span><span class="hs-comment">-- It's OK to use nonDetUFMToList here because we only use it for</span><span>
</span><span id="line-451"></span><span>  </span><span class="hs-comment">-- pretty-printing.</span><span>
</span><span id="line-452"></span><span>
</span><span id="line-453"></span><span class="hs-comment">-- | Pretty-print a non-deterministic set.</span><span>
</span><span id="line-454"></span><span class="hs-comment">-- The order of variables is non-deterministic and for pretty-printing that</span><span>
</span><span id="line-455"></span><span class="hs-comment">-- shouldn't be a problem.</span><span>
</span><span id="line-456"></span><span class="hs-comment">-- Having this function helps contain the non-determinism created with</span><span>
</span><span id="line-457"></span><span class="hs-comment">-- nonDetEltsUFM.</span><span>
</span><span id="line-458"></span><span id="local-6989586621680795536"><span id="local-6989586621680795537"><span class="annot"><a href="GHC.Types.Unique.FM.html#pprUFM"><span class="hs-identifier hs-type">pprUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795537"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795536"><span class="hs-identifier hs-type">a</span></a></span><span>      </span><span class="hs-comment">-- ^ The things to be pretty printed</span><span>
</span><span id="line-459"></span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680795536"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-comment">-- ^ The pretty printing function to use on the elements</span><span>
</span><span id="line-460"></span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span></span><span>          </span><span class="hs-comment">-- ^ 'SDoc' where the things have been pretty</span><span>
</span><span id="line-461"></span><span>                        </span><span class="hs-comment">-- printed</span><span>
</span><span id="line-462"></span><span id="pprUFM"><span class="annot"><span class="annottext">pprUFM :: forall key a. UniqFM key a -&gt; ([a] -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Types.Unique.FM.html#pprUFM"><span class="hs-identifier hs-var hs-var">pprUFM</span></a></span></span><span> </span><span id="local-6989586621680794941"><span class="annot"><span class="annottext">UniqFM key a
</span><a href="#local-6989586621680794941"><span class="hs-identifier hs-var">ufm</span></a></span></span><span> </span><span id="local-6989586621680794940"><span class="annot"><span class="annottext">[a] -&gt; SDoc
</span><a href="#local-6989586621680794940"><span class="hs-identifier hs-var">pp</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[a] -&gt; SDoc
</span><a href="#local-6989586621680794940"><span class="hs-identifier hs-var">pp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UniqFM key a -&gt; [a]
forall key elt. UniqFM key elt -&gt; [elt]
</span><a href="GHC.Types.Unique.FM.html#nonDetEltsUFM"><span class="hs-identifier hs-var">nonDetEltsUFM</span></a></span><span> </span><span class="annot"><span class="annottext">UniqFM key a
</span><a href="#local-6989586621680794941"><span class="hs-identifier hs-var">ufm</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-463"></span><span>
</span><span id="line-464"></span><span class="hs-comment">-- | Pretty-print a non-deterministic set.</span><span>
</span><span id="line-465"></span><span class="hs-comment">-- The order of variables is non-deterministic and for pretty-printing that</span><span>
</span><span id="line-466"></span><span class="hs-comment">-- shouldn't be a problem.</span><span>
</span><span id="line-467"></span><span class="hs-comment">-- Having this function helps contain the non-determinism created with</span><span>
</span><span id="line-468"></span><span class="hs-comment">-- nonDetUFMToList.</span><span>
</span><span id="line-469"></span><span id="local-6989586621680795532"><span id="local-6989586621680795533"><span class="annot"><a href="GHC.Types.Unique.FM.html#pprUFMWithKeys"><span class="hs-identifier hs-type">pprUFMWithKeys</span></a></span><span>
</span><span id="line-470"></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795533"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795532"><span class="hs-identifier hs-type">a</span></a></span><span>                </span><span class="hs-comment">-- ^ The things to be pretty printed</span><span>
</span><span id="line-471"></span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680795532"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-comment">-- ^ The pretty printing function to use on the elements</span><span>
</span><span id="line-472"></span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span></span><span>                    </span><span class="hs-comment">-- ^ 'SDoc' where the things have been pretty</span><span>
</span><span id="line-473"></span><span>                                  </span><span class="hs-comment">-- printed</span><span>
</span><span id="line-474"></span><span id="pprUFMWithKeys"><span class="annot"><span class="annottext">pprUFMWithKeys :: forall key a. UniqFM key a -&gt; ([(Unique, a)] -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Types.Unique.FM.html#pprUFMWithKeys"><span class="hs-identifier hs-var hs-var">pprUFMWithKeys</span></a></span></span><span> </span><span id="local-6989586621680794939"><span class="annot"><span class="annottext">UniqFM key a
</span><a href="#local-6989586621680794939"><span class="hs-identifier hs-var">ufm</span></a></span></span><span> </span><span id="local-6989586621680794938"><span class="annot"><span class="annottext">[(Unique, a)] -&gt; SDoc
</span><a href="#local-6989586621680794938"><span class="hs-identifier hs-var">pp</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[(Unique, a)] -&gt; SDoc
</span><a href="#local-6989586621680794938"><span class="hs-identifier hs-var">pp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UniqFM key a -&gt; [(Unique, a)]
forall key elt. UniqFM key elt -&gt; [(Unique, elt)]
</span><a href="GHC.Types.Unique.FM.html#nonDetUFMToList"><span class="hs-identifier hs-var">nonDetUFMToList</span></a></span><span> </span><span class="annot"><span class="annottext">UniqFM key a
</span><a href="#local-6989586621680794939"><span class="hs-identifier hs-var">ufm</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-475"></span><span>
</span><span id="line-476"></span><span class="hs-comment">-- | Determines the pluralisation suffix appropriate for the length of a set</span><span>
</span><span id="line-477"></span><span class="hs-comment">-- in the same way that plural from Outputable does for lists.</span><span>
</span><span id="line-478"></span><span id="local-6989586621680795528"><span id="local-6989586621680795529"><span class="annot"><a href="GHC.Types.Unique.FM.html#pluralUFM"><span class="hs-identifier hs-type">pluralUFM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.FM.html#UniqFM"><span class="hs-identifier hs-type">UniqFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795529"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680795528"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span></span><span>
</span><span id="line-479"></span><span id="pluralUFM"><span class="annot"><span class="annottext">pluralUFM :: forall key a. UniqFM key a -&gt; SDoc
</span><a href="GHC.Types.Unique.FM.html#pluralUFM"><span class="hs-identifier hs-var hs-var">pluralUFM</span></a></span></span><span> </span><span id="local-6989586621680794933"><span class="annot"><span class="annottext">UniqFM key a
</span><a href="#local-6989586621680794933"><span class="hs-identifier hs-var">ufm</span></a></span></span><span>
</span><span id="line-480"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">UniqFM key a -&gt; Int
forall key elt. UniqFM key elt -&gt; Int
</span><a href="GHC.Types.Unique.FM.html#sizeUFM"><span class="hs-identifier hs-var">sizeUFM</span></a></span><span> </span><span class="annot"><span class="annottext">UniqFM key a
</span><a href="#local-6989586621680794933"><span class="hs-identifier hs-var">ufm</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-481"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'s'</span></span><span>
</span><span id="line-482"></span></pre></body></html>